perl -wle '"foo" =~ /(?-x:.*) /x or die "huh?!"' dies under the perl-5.00503-6 RPM which comes with RedHat 6.1. It shouldn't, and I'm reliably informed that it doesn't on all recent Perls installed fresh from .tar.gz. I marked this as high severity because the Perl regexp engine is crucial to many things. Incidentally, there really should be some sort of HTTP redirect from http://developer.redhat.com/bugzilla/ to the new URL, since all your RPMs are packaged with this old URL!
This is still not fixed in 6.2. Please attend to this, as it is quite a severe problem, and has not even been looked at since I submitted it 3.5 months ago.
Might this just be a typo in the regexp? perl -wle '"foo" =~ /(?-x:.*) /x or die "huh?!"' Does in fact die on RH-Linux, but also on Solaris and windoze. However, perl -wle '"foo" =~ /(?-x:.*)/x or die "huh?!"' (No space before the slash) Does what is expected.
This works in 5.6.0-4 from Rawhide, while dies on RH6.2 version.
No, it's not a typo in the regex. In fact that extra space is the whole point of the bug, because it /should/ be ignored by Perl because of the x switch at the end of the m//. The bug is that the space isn't ignored because the (?-x modifier acts /outside/ its enclosing parentheses for some reason. Looks like it's fixed in more recent Perls then.