use strict;
my $str = '678 9o2 65o1
33 43 269413
(716)5 262238
(334)7 21-0630
256-462-6615
256 462 6615
72 47 36 7976
(681)2 433259
256-462-6615
7✴two✴0✴six✴four✴nine✴2✴zero✴7✴eight
(302)4 872364
678 NO TROUBLE NO GAMES 964 RLEAXIN SPACE JUST TO GET AWAY Wettness your taste buds needs 0656
2❤#TWO 0❤ZERO5 ❤FIVE 5❤FIVE 2❤TWO 6❤SIX 8❤EIGHTY 7❤SEVEN 1❤ONE SIX 6
720/838/8032';
my $regex = qr/^(\((\d{3})\)|(\d{3}))[\s\-\.]?\d{3}[\s\-\.]?\d{4}/mp;
if ( $str =~ /$regex/g ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Perl, please visit: http://perldoc.perl.org/perlre.html