This returns the capital as an individual element, I guess you could concatenate and build up a new array, this is kind of rudimentary though.
$array = preg_split("/([A-Z])/", $uc, -1, PREG_SPLIT_DELIM_CAPTURE);
You could make your life easier by including under score keys or spaces in your string, then you could simply match those.