Todd I will also post an answer that I got from some folks, so just being the messenger here.
There's no guarantee that a particular RawBoxes or Cell represents a valid WL expression. But if it did, then yes, MakeExpression would be the low-level way to extract it. (See also: StripBoxes.) For example:
WolframLanguageData["Array", "DocumentationBasicExamples"][[1, 1]] //
MakeExpression@*First@*First
The higher-level NotebookImport can also be very convenient for processing multiple cells at once. Riffing on Carl's posted answer:
Cases[WolframLanguageData["Array",
"DocumentationBasicExamples"], _Cell, Infinity] // Notebook // NotebookImport