Vuelvo aquí porque no me funcionó el código a la primera, pero lo modifiqué y ahora sí. El bueno es este:
Código PHP:
$searches = '/\[flash=(.*),(.*)\](.*)\[\/flash\]/Uis';
$replaces = '<br><OBJECT id="\3" classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0 WIDTH=\1 HEIGHT=\2><PARAM NAME=movie VALUE=\3><PARAM NAME=quality VALUE=high><EMBED src=\3 quality=high WIDTH=\1 HEIGHT=\1 TYPE=application/x-shockwave-flash PLUGINSPAGE=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash></EMBED></OBJECT><br>';
$text=preg_replace($searches,$replaces,$text);
NOTA: parece que no salen, pero delante de cada [ y ] en lo de [flash] y [/flash] hay una barra invertida \ (no sé por qué no sale)
Con el código de CORE (una vez puestas las \ ) sale una especie de iframe...