use strict;
my $str = '/////////////////////////
Mitnhnhnksmuion
2,687,064
Etyjyjes
1,897,331
Pihjloyd
1,466,137
Edddlnnnnney
1,297,624
Thjtyjkujkes
1,241,307
Fnnhhnac
1,159,710
AfdBhhhghghBA
1,113,062
Elnhhyhjkukjhn
1,023,500
Bggggggel
1,009,075
Letjyjnhhtrh
991,284
Bahtyjtjyjd
849,265
1980Q4
/////////////////////////
Eayes
4,228,223
Elhyjtyjey
1,456,729
1,412,750
Lein
243
184
AA
1,129
672
Elejntyj345hn
002,570
Neerthty34ond
916
78
Biwertetoel
910,353
Qen
874,812
Bs
877,293
Pyd
850,146
1978Q1
/////////////////////////
Mteichrtertson
2,747,969
Eatertglertees
1,885,332
Pirtertd
1,490,156
Elverts
1,295,789
TtrrheBerteaerttles
1,239,194
Fleterteter
1,156,907
ABB
1,117,183
E
1,027,583
Bi
1,010,372
LedZ
987,821
Barb
850,687
1980Q4
/////////////////////////';
my $regex = qr`^/+\R\K(?:(?!/+$|\d+(?:,\d+)*\R\d+(?:,\d+)*$).*\R)*\d+(?:,\d+)*(?:\R\d+(?:,\d+)*)+(?:\R(?!/+$).*)*(?=\R/+$)`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