use strict;
my $str = 'REGEX_1 = (local commercial|locaux commerciaux)
REGEX_2 = ((activit[eé]s?|entrep[oô]ts?|stockage|d[eé]p[oô]t) (ou|/|et de) commerce)
REGEX_3 = ([àa] usage de|idéal pour|zone mixte|propice au|doté de|composé (de|d\'un)|lot \\d{1} :) commerces?
REGEX_NOT =
(à proximité (commerces|
commerces? proche|
commerces? [aà] proximit[ée]|
[aà] proximit[ée](\\s\\w*)? des? commerces?)
[Encapsuler xxx]
local commercial
locaux commerciaux
activité ou commerce
d\'activité / commerce
entrepôts/bureaux/commerces
entrepôt et de commerce
à usage de commerce
zone mixte commerces
idéal pour commerces
en dépôt ou commerce
stockage / commerce
composé d\'un commerce
doté de commerces
lot 1 : commerce
propice au commerce
[NE PAS TENIR COMPTE]
à proximité (commerces, restaurants)
commerces? proche
commerces? à proximité
à proximité de commerces?
à proximité immédiate des commerces?';
my $regex = qr/([àa] usage de|idéal pour|zone mixte|propice au|doté de|composé (de|d'un)|lot \d{1} :) commerces?/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