my $current_article = qq| [sommaire foo bar 3] [[345fsdf sf]] [[sdf sf fsd fsf]] [[foo bar\|whatever]] == foo bar === foo bar test [/sommaire] |; while ($current_article =~ m/\[\[(.+?)\]\]/g) { my $tag_name = $1; print "Got $tag_name \n"; print "Checking if we have any contents AFTER it... \n"; print "RUNNING: \Q[[$tag_name]]\E(.*?)\[ \n"; if ($current_article =~ /\Q[[$tag_name]]\E(.*?)\[/) { print "Got contents: $1 and $2 \n"; } print "\n\n"; }