Para que puedas reemplazar sólo etiquetas válidas, debes crear bien las expresiones regulares, ejemplo:
Para
[font=arial]Texto
[/font]:
- Debe iniciar con corchete, font, signo igual y un nombre de fuente (2 o más caracteres)
- Después debe cerrar el corchete
- Debe (debería?) existir un texto entre las etiquetas de apertura y cierre
- Finalizar con la etiqueta de cierre [/font]
Puesto que ya sabes qué es un BBCode, cómo funciona y, además, ya armaste uno, creo que no tendrás problema para crear esa expresión regular y el correspondiente reemplazo; caso contrario, favor de visitar:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/