青木です。

String#split の挙動がなんか変です。

  % ruby -e 'p "a\na".split("\n")'
  ["a\na"]

メタキャラクタを含まなければ正しい結果になります。

  % ruby -e 'p "aba".split("b")'
  ["a", "a"]

原因は rb_reg_quote() で、

  rb_reg_quote("\n")  ->  "\\n\n"

となっていることでした。
ついでに言うと以下の変換は意味が変わっているので不適切だと思います。

  rb_reg_quote(" ")  ->  "\s"

以上を修正するパッチを添付します。
-------------------------------------------------------------------
青木峰郎

Index: re.c =================================================================== RCS file: /home/aamine/var/cvs/ruby/ruby/re.c,v retrieving revision 1.103 diff -u -p -r1.103 re.c --- re.c 16 May 2003 23:28:17 -0000 1.103 +++ re.c 19 May 2003 04:05:46 -0000 @@ -1382,24 +1382,24 @@ rb_reg_quote(str) break; case ' ': *t++ = '\\'; - *t++ = 's'; - break; + *t++ = ' '; + continue; case '\t': *t++ = '\\'; *t++ = 't'; - break; + continue; case '\n': *t++ = '\\'; *t++ = 'n'; - break; + continue; case '\r': *t++ = '\\'; *t++ = 'r'; - break; + continue; case '\f': *t++ = '\\'; *t++ = 'f'; - break; + continue; } *t++ = c; }