Hola,
El problema es que los caracteres [ y ] son caracteres especiales en las espresiones regulares. Si quieres indicar los caracteres [ y ] tienes que escaparlos con \ , algo como:
$mensaje = preg_replace("#\[a\](.*?){1}\[/a\]#", "<a href=\"$1\" target=\"_blank\"><B>$1</B></A>", $mensaje);
Saludos.
__________________ Josemi
Aprendiz de mucho, maestro de poco. |