use strict; use warnings; my $string = q{hereiam[[[one]]][[[two]]][[[three]]]wwhat}; my @strings = $string =~ m{\[+([^\]]*])\]+}g; print qq{@strings\n}; #### one two three