regex – Expresión regular para palabras en php


¿cómo están?
Estoy trabajando con preg_replace para sustituir cadenas, pero estoy atorado con una expresión regular. Yo tengo lo siguiente:

$texto = "Mi carro es dorado como el <b>carro</b> de enfrente";

preg_replace("/bcarro(^<)b/", "auto",$texto);

Lo que quiero es que se reemplace solo la primera palabra carro, pero cuando tenga las etiquetas no se reemplace la palabra.

El texto debería quedar así.

$texto = "Mi auto es dorado como el <b>carro</b> de enfrente";

Pero queda así, se come el espacio, debido a que la expresión regular dice que acepte todo excepto cuando tenga el símbolo < y es por eso que está borrando el espacio, pero no logro hacer la expresión regular, alguien tiene una idea?

$texto = "Mi autoes dorado como el <b>carro</b> de enfrente";