in reply to Optimize a pluggable regex matching mechanism

Consider also Regexp::Assemble and the following code example taken (more or less) verbatim from it:
>perl -wMstrict -MRegexp::Assemble -le "my $r = Regexp::Assemble->new->track(1)->add(qw(foo? bar{2} [Rr]at)); for my $w (qw(this food is rather barren)) { if ($w =~ /$r/) { print qq{'$w' matched by /}, $r->source($^R), q{/}; } else { print qq{'$w' unmatched}; } } " 'this' unmatched 'food' matched by /foo?/ 'is' unmatched 'rather' matched by /[Rr]at/ 'barren' matched by /bar{2}/
I haven't checked, but my guess is that this or a related method or methods from the module will give you a fairly well optimized solution.