use strict;
my $str = '"D01.00.00";"005291";"CG45";"15085";"cnt_ext";"1906151751";181856;"A05";"dem_ext";"LARDEAU Benoit";"02 36 99 26 02";"site_ext";"COLLEGE PAUL ELUARD";"SIT_036";"COLLEGE PAUL ELUARD";"TEST_Pose d\'un portier video";"19/06/2019 00:00";"SUEUR Olivier";"02 38 85 51 55";"";"olivier.sueur_¿_ac-orleans-tours.fr";"12/07/2019 00:00";002;0;"Pose d\'un portier vidéo pour le portillon d\'accès aux logements de fonction.[Test D01 BLA 20190619]"
"D01.00.00";"005291";"CG45";"15085";"cnt_ext";"1906151755";181860;"A05";"dem_ext";"LARDEAU Benoit";"02 36 99 26 02";"site_ext";"COLLEGE LOUIS PASTEUR";"SIT_036";"COLLEGE LOUIS PASTEUR";"TEST_Remplacement extincteur";"19/06/2019 00:00";"PETIT Anne";"02 38 72 65 81";"";"anne.petit_¿_ac-orleans-tours.fr";"11/07/2019 00:00";003;0;"Bonjour, l\'extincteur n° 137 839 a été déclaré inutilisable en l\'état lors de la dernière vérification, date de validité dépassée. Merci de prévoir le remplacement à l\'identique."
"D01.00.00";"005291";"CG45";"15085";"cnt_ext";"1906151750";181855;"A05";"dem_ext";"LARDEAU Benoit";"02 36 99 26 02";"site_ext";"HOTEL DU DEPARTEMENT";"SIT_043";"HOTEL DU DEPARTEMENT";"TEST_Remplacement prises";"19/06/2019 00:00";"DESCAMPS Matthieu";"02 38 25 43 01";"06 45 37 64 85";"matthieu.descamps_¿_loiret.fr";"26/06/2019 00:00";003;0;"Remplacement de quatre blocs de prises au centre de documentation. [Test D01 BLA 20190619]"
"D01.00.00";"005291";"CG45";"15085";"cnt_ext";"1906151753";181858;"A05";"dem_ext";"LARDEAU Benoit";"02 36 99 26 02";"site_ext";"COLLEGE MONTABUZARD";"SIT_008";"SALLE POLYVALENTE MONTABUZARD";"TEST_Pose de serrures local stockage";"19/06/2019 00:00";"MORVAN Béatrice";"02 38 74 71 98";"";"beatrice.dixon_¿_ac-orleans-tours.fr";"27/06/2019 00:00";002;0;"Pose de serrures sur les trois portes d\'accès au local de stockage. [Test D01 BLA 20190619]"
"D01.00.00";"005291";"CG45";"15085";"cnt_ext";"1906151752";181857;"A05";"dem_ext";"LARDEAU Benoit";"02 36 99 26 02";"site_ext";"COLLEGE MONTABUZARD";"SIT_036";"COLLEGE MONTABUZARD";"TEST_Remplacement chauffe-eau";"19/06/2019 00:00";"MORVAN Béatrice";"02 38 74 71 98";"";"beatrice.dixon_¿_ac-orleans-tours.fr";"04/07/2019 00:00";003;0;"Remplacement du chauffe-eau du vestiaire du personnel [Test D01 BLA 20190619]"
"D01.00.00";"005291";"CG45";"15085";"cnt_ext";"1906151754";181859;"A05";"dem_ext";"LARDEAU Benoit";"02 36 99 26 02";"site_ext";"COLLEGE CLOS FERBOIS";"SIT_036";"COLLEGE CLOS FERBOIS";"TEST_Pose de 6 blocs de 4 prises";"19/06/2019 00:00";"ROGER Angéline";"02 38 59 72 70";"";"Angeline.Roger_¿_ac-orleans-tours.fr";"30/08/2019 00:00";004;0;"Pose de 6 blocs de 4 prises en salle de dessin pour raccordements PC portables.[Test D01 BLA 20190619]"
';
my $regex = qr/^"(?'tsy_lib'.*?)";(?:.*?;){4}"(?'num_externe'.*?)";(?:.*?;){3}"(?'apt_nom'.*?)";"(?'apt_telephone'.*?)";(?:.*?;)"(?'apt_localisation'.*?)";(?:.*?;)"(?'ins_libl'.*?)";(?:.*?;){5}"(?'apt_e_mail'.*?)";(?:.*?;){2}"(?'commentaire_externe'.+)"/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