use strict;
my $str = '0
00
0000000000
0123456789
X0123456789
01234X56789
0123456789X
1
11
1111111111
1000000000
0000000001
1234567890
X1234567890
12345X67890
1234567890X
2
22
2222222222
2000000000
0000000002
2345678901
X2345678901
23456X78901
2345678901X
3
33
3333333333
3000000000
0000000003
3456789012
X3456789012
34567X89012
3456789012X
4
44
4444444444
4000000000
0000000004
4567890123
X4567890123
45678X90123
4567890123X
5
55
5555555555
5000000000
0000000005
5678901234
X5678901234
56789X01234
5678901234X
6
66
6666666666
6000000000
0000000006
6789012345
X6789012345
67890X12345
6789012345X
7
77
7777777777
7000000000
0000000007
7890123456
X7890123456
78901X23456
7890123456X
8
88
8888888888
8000000000
0000000008
8901234567
X8901234567
89012X34567
8901234567X
9
99
9999999999
9000000000
0000000009
9012345678
X9012345678
90123X45678
9012345678X
-0
-00
-0000000000
-0123456789
-X0123456789
-01234X56789
-0123456789X
-1
-11
-1111111111
-1000000000
-0000000001
-1234567890
-X1234567890
-12345X67890
-1234567890X
-2
-22
-2222222222
-2000000000
-0000000002
-2345678901
-X2345678901
-23456X78901
-2345678901X
-3
-33
-3333333333
-3000000000
-0000000003
-3456789012
-X3456789012
-34567X89012
-3456789012X
-4
-44
-4444444444
-4000000000
-0000000004
-4567890123
-X4567890123
-45678X90123
-4567890123X
-5
-55
-5555555555
-5000000000
-0000000005
-5678901234
-X5678901234
-56789X01234
-5678901234X
-6
-66
-6666666666
-6000000000
-0000000006
-6789012345
-X6789012345
-67890X12345
-6789012345X
-7
-77
-7777777777
-7000000000
-0000000007
-7890123456
-X7890123456
-78901X23456
-7890123456X
-8
-88
-8888888888
-8000000000
-0000000008
-8901234567
-X8901234567
-89012X34567
-8901234567X
-9
-99
-9999999999
-9000000000
-0000000009
-9012345678
-X9012345678
-90123X45678
-9012345678X
X
Y
Z';
my $regex = qr/^-?[0-9]+$/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