Bonjour à tous.
J'ai un problème avec une expression régulière devant capturer des balise non conformes

exemple de string a rechercher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
[IF_test]abcdfd[/IF_test][IF_test]hynhtynt[/IF_test]
j'ai l'expression régulière suivante utilisée avec preg_match_all:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
/\[IF_([^\]\[]*)\](.*)?\[\/IF_\\1\]/
Elle fonctionne partiellement, en fait dans cet exemple toute la chaine sera capturé mais je veux qu'il y en ait 2 distinctes

Alors comment faire pour empêcher la regex de saisir le dernier [/IF_test] comme la fermeture du premier...je sais que je dois empêcher la regex des passer si on passe sur une autre balise d'ouverture identique mais je dois permettre les balises différentes imbriqués comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
[IF_test]abcdfdh[IF_test2]ynh[/IF_test2]tynt[/IF_test]
dans cet exemple toute la ligne serait prise par la regex et la valeur capturé au centre serait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
abcdfdh[IF_test2]ynh[/IF_test2]tynt
Merci de votre aide