use strict;
my $str = '
num_externe=1607770.01 xfi_cd=E ins_numins=5490201001 apt_nom=AMMAR/Fathia apt_type=CLI
apt_telephone=0156658495 tsy_cd=3116 qsy_cd=1 commentaire_externe=B490 - RETIRER LE NÉON QUI SE TROUVE AU DESSUS DU BUREAU SVP MERCI apt_localisation=B463////Courbevoie urg_cd= dtheure_limite=
';
my $regex = qr/num_externe\s*=(?'num_externe'.*?)\s*xfi_cd.*ins_numins\s*=(?'ins_numins'.*?)\s*apt_nom\s*=(?'apt_nom'.*?)\s*apt_type\s*=(?'apt_type'.*?)\s*apt_telephone\s*=(?'apt_telephone'.*?)\s*tsy_cd\s*=(?'tsy_cd'.*?)\s*qsy_cd\s*=(?'qsy_cd'.*?)\s*commentaire_externe\s*=(?'commentaire_externe'.*?)\s*apt_localisation\s*=(?'apt_localisation'.*?)\s*urg_cd/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