木村です。

\cx記法で、\c\と記述することができません。
read_specialやtokadd_escapeを再帰呼び出ししているのが
原因だと思うのですが、これはなぜこうしているのでしょうか?

以下のパッチは1.8.2に対するものですが、1.9.0でも同じ現象は
発生します。

--- parse.y.1~	2004-07-17 18:29:59.000000000 +0900
+++ parse.y	2005-07-10 04:23:35.000000000 +0900
@@ -2887,10 +2887,8 @@ tokadd_escape(term)
       case 'c':
 	tokadd('\\'); tokadd('c');
       escaped:
-	if ((c = nextc()) == '\\') {
-	    return tokadd_escape(term);
-	}
-	else if (c == -1) goto eof;
+	c = nextc();
+	if (c == -1) goto eof;
 	tokadd(c);
 	return 0;

--- regex.c.1~	2004-01-26 14:41:07.000000000 +0900
+++ regex.c	2005-07-10 04:25:59.000000000 +0900
@@ -1161,10 +1161,7 @@ read_special(p, pend, pp)
     if (c != '-') return -1;
     PATFETCH_RAW(c);
     *pp = p;
-    if (c == '\\') {
-      return read_special(p, pend, pp) | 0x80;
-    }
-    else if (c == -1) return ~0;
+    if (c == -1) return ~0;
     else {
       return ((c & 0xff) | 0x80);
     }
@@ -1175,10 +1172,7 @@ read_special(p, pend, pp)
   case 'c':
     PATFETCH_RAW(c);
     *pp = p;
-    if (c == '\\') {
-      c = read_special(p, pend, pp);
-    }
-    else if (c == '?') return 0177;
+    if (c == '?') return 0177;
     else if (c == -1) return ~0;
     return c & 0x9f;
   default:


-- 
木村浩一
  I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
  mail kbk / kt.rim.or.jp
	web  www.kt.rim.or.jp/~kbk/index.html#zakkicho
	     homepage3.nifty.com/farstar/