Если вас интересуют только символы ASCII:
$parts = preg_split("/(?=[A-Z])/", $str);
DEMO
Конструкция (?= ..)
называется lookahead [документы] .
Это работает, если части содержат только заглавные буквы в начале.Это становится сложнее, если у вас есть такие вещи, как getHTMLString
.Это может соответствовать:
$parts = preg_split("/((?<=[a-z])(?=[A-Z])|(?=[A-Z][a-z]))/", $str);
DEMO