Dear Monks,
Why does this match the regexp when using case insensitive matching? IMHO this should not match in either case and yet it does when I add case insensitivity.
Here is the code:
$_ = ' onn (bbcreccsnnl_output) !OUTPUT';
if ($_ =~ /^S\s+[-]*\d+[\.\d+]*\s+[-]*\d+[\.\d+]*\s*\(\s*IOPUT|OUTPUT\
+s*\)/i)
{
print "It matches with case insensitive...\n";
}
else
{
print "It does NOT match with case insensitive...\n";
}
if ($_ =~ /^S\s+[-]*\d+[\.\d+]*\s+[-]*\d+[\.\d+]*\s*\(\s*IOPUT|OUTPUT\
+s*\)/)
{
print "It matches without case insensitive...\n";
}
else
{
print "It does NOT match without case insensitive...\n";
}
And here is the output (on a linux box):
It matches with case insensitive...
It does NOT match without case insensitive...
Your insights are greatly appreciated. This has me baffled (not that this is difficult to achieve or anything).
Update: it seems to have the same problem even with the much simpler regexp:
($_ =~ /\(\s*IOPUT|OUTPUT\s*\)/)