pl@nereida:~/Lperltesting$ cat ./offsetsin5_10.pl #!/usr/local/lib/perl/5.10.1/bin//perl5.10.1 use v5.10; my $input; local $" = ", "; my $parser = qr{ ^ ((?&expr)) ((?&expr)) \z (?{ say "main:\n\@- = (@-)\t\t ".scalar(@-)." items\n\@+ = (@+)\t ".scalar(@+)." items\n"; }) (?(DEFINE) (? (.) (.) (?{ say "expr:\n\@- = (@-)\t ".scalar(@-)." items\n\@+ = (@+)\t ".scalar(@+)." items\n"; }) ) ) }x; $input = <>; chomp($input); if ($input =~ $parser) { say "matches: ($&)";