>perl -wMstrict -le "my $s = 'foo [bar baz] quux [%^&*] boff [] biff'; my @bracketed = $s =~ m{ \[ ([^]]*) \] }xmsg; print qq{'$_'} for @bracketed; @bracketed = $s =~ m{ \[ [^]]* \] }xmsg; print qq{'$_'} for @bracketed; " 'bar baz' '%^&*' '' '[bar baz]' '[%^&*]' '[]'