Tengo un problema con un BBCode, que resulta que no puedo anidar citas en un foro. He intentado resolverlo hace algunos meses, pero no encuentro la solución.

El código que uso es éste:
Código PHP:
function reescribir ($str) {
$busqueda = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[u\](.*?)\[\/u\]/is',
'/\[img\=(.*?)\]/is',
'/\[url\](.*?)\[\/url\]/is',
'/\[url\=(.*?)\](.*?)\[\/url\]/is',
'/\[cita\](.*?)\[\/cita\]/is',
'/\[cita\=(.*?)\](.*?)\[\/cita\]/is',
'/\[youtube\=http\:\/\/(.*?)\.youtube\.com\/watch\?v\=(.*?)\]/is'
);
$reemplazo = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<u>$1</u>',
'<img src="$1" />',
'<a href="$1" target="_blank" rel="nofollow">$1</a>',
'<a href="$1" target="_blank" rel="nofollow">$2</a>',
'<span class="cita">Cita:<p class="textoCita">$1</p></span>',
'<span class="cita">$1 escribió:<p class="textoCita">$2</p></span>',
' <object width="425" height="350">
<param name="movie" value="http://www.youtube.com/v/$2"></param>
<param name="wmode" value="transparent"></param>
<embed src="http://www.youtube.com/v/$2" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed>
</object>'
);
$str = preg_replace ($busqueda, $reemplazo, $str);
$str=smilies($str);
return $str;
}

Muchas gracias.
