In article <20030321040221.EC03C5AA / helium.ruby-lang.org>,
  "K.Kosako" <kosako / sofnec.co.jp> writes:

> '['は、文字クラスの中で特別の意味を持っていないのに
> エスケープ強制なのはおかしい、という人はいるかもしれませんが、
> 実際にわかりにくいことは確かなので。

というわけで、1.8 にはこんなのを入れたらいいんじゃないかな、と思うんで
すが、どうでしょう?

Index: regex.c
===================================================================
RCS file: /src/ruby/regex.c,v
retrieving revision 1.80
diff -u -r1.80 regex.c
--- regex.c	24 Jan 2003 09:18:04 -0000	1.80
+++ regex.c	21 Mar 2003 07:32:56 -0000
@@ -1464,6 +1464,7 @@
 	  if (p == p0 + 1) {
 	    if (p == pend)
 	      FREE_AND_RETURN(stackb, "invalid regular expression; empty character class");
+            rb_warn("character class has `]' without escape");
 	  }
 	  else 
 	    /* Stop if this isn't merely a ] inside a bracket
@@ -1481,6 +1482,9 @@
 	}
 	had_char_class = 0;
 
+	if (c == '-')
+          rb_warn("character class has `-' without escape");
+
 	/* \ escapes characters when inside [...].  */
 	if (c == '\\') {
 	  PATFETCH_RAW(c);
@@ -1678,6 +1682,7 @@
 	    c1++;
 	    while (c1--)    
 	      PATUNFETCH;
+            rb_warn("character class has `[' without escape");
 	    SET_LIST_BIT(TRANSLATE_P()?translate['[']:'[');
 	    SET_LIST_BIT(TRANSLATE_P()?translate[':']:':');
 	    had_char_class = 0;
@@ -1685,6 +1690,8 @@
 	  }
 	}
 	else if (had_mbchar == 0 && (!current_mbctype || !had_num_literal)) {
+          if (c == '[')
+            rb_warn("character class has `[' without escape");
 	  SET_LIST_BIT(c);
  	  had_num_literal = 0;
 	}
-- 
[田中 哲][たなか あきら][Tanaka Akira]