Regexp-Optimizer

 view release on metacpan or  search on metacpan

lib/Regexp/Optimizer.pm  view on Meta::CPAN

sub new {
    my $class = shift;
    bless {@_}, $class;
}

sub _assemble {
    my $str = shift;
    return $str if $str !~ $re_optimize;
    if ( $str !~ m/[(]/ms ) {
        my $ra = Regexp::Assemble->new();
        $ra->add( split m{[|]}, $str );
        return $ra->as_string;
    }
    $str =~ s{$re_nested}{
        no warnings 'uninitialized';
        my $sub = $1;
        if ($sub =~ m/\A\?(?:[\?\{\(PR]|[\+\-]?[0-9])/ms) {
            "($sub)";  # (?{CODE}) and like ruled out
        }else{
            my $mod = ($sub =~ s/\A\?//) ? '?' : '';
            if ($mod) {



( run in 0.950 second using v1.01-cache-2.11-cpan-5511b514fd6 )