$_ = "I have 2 numbers: 53147"; if (/(.*?)(\d+)/) { print "Beginning is <$1>,number is <$2>.\n"; } #prints: Beginning is ,number is <2>. # Don't tell me that $1 = "I have ". # Just execute the print statement and show the output. #### use warnings; use strict; my $string = "I have 2 numbers: 53147"; if ($string =~ /(.*?)(\d+)/) { print "Beginning is <$1>,number is <$2>.\n"; } #prints: Beginning is ,number is <2>. #### my $string = "I have 2 numbers: 53147"; if ($string =~ /(.*)(\d+)/) { print "Beginning is <$1>,number is <$2>.\n"; } #prints: Beginning is ,number is <7>. #### my $string = "I have 325 numbers: 98765 12324"; if ($string =~ /(\d+)\D+(\d+)/) { print "Beginning is <$1>,number is <$2>.\n"; } #prints: Beginning is <325>,number is <98765>. #### \d, a digit[0-9] \D a non digit \w, a word character[a-zA-Z0-9_] \W a non word character \s, a white space char [\s\t\f\r\n] \S a non-whitespace char