Forse nel tuo caso specifico non hai bisogno delle regexp. Un str_replace basterebbe.
codice:Senza regexp <? $a = "[immagine1.jpg][immagine2.gif][immagine3.jpg]"; $a = str_replace("[","<img src=\"",$a); $a = str_replace("]","\">",$a); print $a; ?> Con regexp <? $b = "[immagine1.jpg][immagine2.gif][immagine3.jpg]"; $pattern = "|\[([^]]*)\]|"; $c = preg_replace($pattern,"<img src=\"\\1\" alt=\"\\1\">",$b); print $c; ?>