Php coloca un espacio delante de las mayúsculas en una cadena (Regex)

Tengo una serie de cadenas que contienen palabras que se agrupan y tengo que separarlas.

Por ejemplo, ThisWasCool - Esto fue genial
MyHomeIsHere - Mi casa está aquí

Poco a poco me meto la cabeza en expresiones regulares y creo que para hacer esto debería usar preg_replace. Mi problema es juntar la expresión para encontrar la coincidencia.

Solo he llegado hasta aquí

   preg_replace('~^[A-Z]~', " ", $string)

Cada cadena contiene muchas palabras, pero SOLAMENTE la primera palabra contiene palabras agrupadas, por lo que usar mi ejemplo sobre una cadena sería
"ThisWasCool para visitarte de nuevo" - "This Was Cool para visitarte de nuevo"

Le he dicho que comience por el principio y busque mayúsculas, pero lo que no sé cómo hacer es restringirlo solo a la primera palabra de cada cadena, cómo reutilizar la letra mayúscula en la parte de reemplazo después del espacio

Respuestas a la pregunta(4)

Su respuesta a la pregunta