#!/usr/bin/perl -- use Regexp::English; print Regexp::English ->new ->remember ->multiple ->digit, "\n"; __END__ (?^:((?:\d+))) #### my( @numbers ) = $str -~ m{ (\d+) }gx; #### use YAPE::Regex::Explain; print YAPE::Regex::Explain->new( qr{ (\d+) }x, )->explain; __END__ The regular expression: (?x-ims: (\d+) ) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?x-ims: group, but do not capture (disregarding whitespace and comments) (case-sensitive) (with ^ and $ matching normally) (with . not matching \n): ---------------------------------------------------------------------- ( group and capture to \1: ---------------------------------------------------------------------- \d+ digits (0-9) (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- ) end of \1 ---------------------------------------------------------------------- ) end of grouping ---------------------------------------------------------------------- #### $ perl -MRegexp::Common -e " print $RE{num}{int} " (?:(?:[+-]?)(?:[0123456789]+)) #### #!/usr/bin/perl -- use strict; use warnings; my $REint = qr{ #---------------------------------------------------------------------- (?: # group, but do not capture: #---------------------------------------------------------------------- (?: # group, but do not capture: #---------------------------------------------------------------------- [+-]? # any character of: '+', '-' (optional # (matching the most amount possible)) #---------------------------------------------------------------------- ) # end of grouping #---------------------------------------------------------------------- (?: # group, but do not capture: #---------------------------------------------------------------------- [0123456789]+ # any character of: '0', '1', '2', '3', # '4', '5', '6', '7', '8', '9' (1 or # more times (matching the most amount # possible)) #---------------------------------------------------------------------- ) # end of grouping #---------------------------------------------------------------------- ) # end of grouping #---------------------------------------------------------------------- }x; # end of qr print "$_\n" for "1 plus 1 is 2" =~ m/$REint/g __END__ 1 1 2