Как отделить одно слово от другого?
preg_replace('/([А-ЯЁ])/smu', " $0", 'БетонДерево')
sandbox.onlinephpfunctions.com/code/0ec6a5805a756c...
Ну только первый пробел поправьте...
$text = preg_replace('/(?<!^|\s)([А-ЯЁ])/mu', " $1", $text);