Analisador BBCode - recursivo [quote] com regex e preg_replace

Estou criando meu próprio analisador de bbcode e tenho um problema ao tentar fazer a cotação recursiva.

este é o meu 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;
}

o que devo adicionar / editar para fazer uma cotação recursiva? em outras palavras, quando uma citação está dentro de outra citação ...

saúde e tnx pela ajuda

questionAnswers(2)

yourAnswerToTheQuestion