>>>>> "M" == Mike Stok <mike / ratdog.stok.co.uk> writes:

M>     m_c  = /[Mm]ike/    # char class - allow upper or lower M

 Well, this is this case

pigeon% /usr/bin/ruby -e 'p ("Mike" =~ /(?-i)[Mm]ike/)'
nil
pigeon% 

pigeon% diff -u regex.c.old regex.c
--- regex.c.old 2003-06-13 17:16:18.000000000 +0200
+++ regex.c     2003-06-14 09:58:41.000000000 +0200
@@ -1011,6 +1011,7 @@
       break;
 
     case duplicate:
+    case option_set:
       p++;
       break;
 
@@ -1036,7 +1037,6 @@
     case push_dummy_failure:
     case start_paren:
     case stop_paren:
-    case option_set:
       break;
 
     case charset:
@@ -2798,8 +2798,11 @@
 
       case casefold_on:
        bufp->options |= RE_MAY_IGNORECASE;
+       options |= RE_OPTION_IGNORECASE;
+       continue;
+
       case casefold_off:
-       options ^= RE_OPTION_IGNORECASE;
+       options &= ~RE_OPTION_IGNORECASE;
        continue;
 
       case option_set:
pigeon% 


pigeon% ./ruby -e 'p ("Mike" =~ /(?-i)[Mm]ike/)'
0
pigeon% 


Guy Decoux