c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my $s = 'foo [21a] plus (b23) baz'; ;; my @captures = grep defined, $s =~ m{ (\d+) (a|b) | (a|b) (\d+) }xmsg ; dd \@captures; " [21, "a", "b", 23]