use strict;
my $str = '+32497239319
0032497239319
0032/497/13/93/19
0032/497.13.93.19
0032/497/13/93/19
0032497/13.93.19
+32497/139319
0497/13.93.19
+32497.13.93.19
0497139319
0497 13 93 19
0497 139 319
jakkamakka
+32497139319 OF +32497149419
++32497139318
0123456789
0032123456789
036852931
003236852931
+3236852931
03/685.29.31
00323/685.29.31
+323/685.29.31
03.685.29.31
00323.685.29.31
+323.685.29.31
03/685/29/31
0032/3/685/29/31
+32/3/685/29.31
03/68.529.31
';
my $regex = qr/^(((\+|00)32\s?|0)4(60|[789]\d)\/?(((\s|\.)?\d{2}){3}|((\s|\.)?\d{3}){2})$)|(^((\+|00)32\s?|0)(\d(\s|\.|\/)?\d{3}|\d{2}(\s|\.)?\d{2})((\s|\.)?\d{2}){2}$)/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