use strict;
my $str = '[Verse 1]
Jenny, Jenny, who can I turn to?
You give me somethin\' I can hold on to
I know you think I\'m like the others before
Who saw your name and number on the wall
[Chorus 1]
Jenny, I got your number
I need to make you mine
Jenny, don\'t change your number
[Post-Chorus]
867-5309
867-5309
867-5309
867-5309
[Verse 2]
Jenny, Jenny, you\'re the girl for me
Oh, you don\'t know me, but you make me so happy
I tried to call you before, but I lost my nerve
I tried my imagination, but I was disturbed
[Chorus 1]
Jenny, I got your number
I need to make you mine
Jenny, don\'t change your number
[Post-Chorus]
867-5309
867-5309
867-5309
867-5309
[Bridge]
I got it, (I got it), I got it
I got your number on the wall
I got it, (I got it), I got it
For a good time, for a good time call
[Chorus 2]
Jenny, don\'t change your number
I need to make you mine
Jenny, I call your number
[Post-Chorus]
867-5309
867-5309
867-5309
867-5309
[Breakdown]
Jenny, Jenny, who can I turn to?
867-5309
For the price of a dime I can always turn to you
867-5309
[Outro]
867-5309
867-5309
867-5309
867-5309
5309
867-5309 (5309)
867-5309 (5309)
867-5309';
my $regex = qr/\d{3}-\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