Bonjour à vous

Je viens vous voir, car j'ai un soucis (pour changer ...)

Mon soucis est que j'ai une regex pour faire des liens cliquables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$texte = preg_replace('#(https?|ftp)://([\w\/\.\?_=\#\@:~\{\}&;]{20})(.+)([\w\/\.\?_=\#\@:~\{\}&;]{5})#i', ' <a href="$0" target="_blank">$1://$2[...]$4</a> ', $texte);
Mais j'ai aussi une regex pour demander au balise [img][/img] de transformer le lien d'une image en image :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$texte = preg_replace('#\[img](.+?)\[/img]#si','<a href="$1"><div class="img01"><img class="imageforum" src="$1" /></div></a>',$texte);
Donc mon soucis est que l'un interfère avec l'autre !

Comment faire en sorte de demander à la regex lien de laisser tranquille les balises [img][/img] ?

J'ai trouvé un bout de solutions en rajoutant ceci dans ma regex lien : ([^img]) et ([^/img])

Mais dès que je les insère dans ma regex, j'ai une erreur :

Compilation failed: unmatched parentheses at offset 57
(le chiffre évoluant en fonction des tests !)

Auriez vous une idée alors pour gérer mon erreur ?
Merci d'avoir pris le temps de lire mon soucis :]