diff -ru /home/k/.cpan/build/XML-Twig-3.37-L1QMXn~/Twig_pm.slow /home/k/.cpan/build/XML-Twig-3.37-L1QMXn/Twig_pm.slow --- XML-Twig-3.37-L1QMXn~/Twig_pm.slow 2010-10-09 18:17:09.000000000 +0200 +++ XML-Twig-3.37-L1QMXn/Twig_pm.slow 2010-12-03 06:44:45.000000000 +0100 @@ -1366,7 +1366,7 @@ sub _set_regexp_handler { my( $handlers, $path, $handler, $prev_handler)= @_; # if the expression was a regexp it is now a string (it was stringified when it became a hash key) - if( $path=~ m{^\(\?([xism]*)(?:-[xism]*)?:(.*)\)$}) + if( $path=~ m{^\(\?(\^?[xism]*)(?:-[xism]*)?:(.*)\)$}) { my $regexp= qr/(?$1:$2)/; # convert it back into a regexp my $sub= sub { my( $stack)= @_; return( $stack->[-1]->{_tag} =~ $regexp ) }; my $handler_data= { tag=> '*', score => { type => $REGEXP_TRIGGER} , trigger => $sub,