PHP - analizador BBCode - recursivo [cita] con regex y preg_replace

Estoy haciendo mi propio analizador de bbcode, y tengo un problema cuando trato de hacer la cita recursiva.

Este es mi código:

 function forumBBCode($str){
$format_search=array(
'#\[quote=(.*?)\](.*?)\[/quote\]#is'
);

$format_replace=array(
'<blockquote class="quotearea"><i><a class="lblackbu" href="./index.php?status=userview&userv=$1">$1</a> wrote :</i><br />$2</blockquote>'
);

$str=preg_replace($format_search, $format_replace, $str);
$str=nl2br($str);
return $str;
}

¿Qué debo agregar / editar para hacer una cita recursiva? en otras palabras, cuando una cita está dentro de otra cita ...

salud y tnx por la ayuda

Respuestas a la pregunta(2)

Su respuesta a la pregunta