попробуй использовать не ['"\"] а ('|"|\")
а вообще я бы сделал так:
PHP:
скопировать код в буфер обмена
$str='текст [img="ссылка"]описание[/img] текст [img]ссылка[/img] текст';
$str=preg_replace("/\[img=('|"|\
")(.*?)('|"|\
")\](.*?)\[\/img\]/",'<img alt="\\4" border="0" src="\\2">',$str); $str=preg_replace("/\[img\](.*?)\[\/img\]/",'<img border="0" src="\\1">',$str); echo $str;