c:\@Work\Perl\monks>perl -wMstrict -le "my @strings_to_be_matched = qw(foo bar wibble wobble fee_fie foe fum); ;; my ($ur) = map qr{ $_ }xms, join q{ | }, map quotemeta, reverse sort @strings_to_be_matched ; print qq{\$ur: $ur}; ;; my $reg3 = qr/extern.+\b$ur\b\s*/i; print qq{\$reg3: $reg3}; " $ur: (?^msx: wobble | wibble | fum | foo | foe | fee_fie | bar ) $reg3: (?^i:extern.+\b(?^msx: wobble | wibble | fum | foo | foe | fee_fie | bar )\b\s*)