こんにちは、越水です。

1.1c5 on x86Linuxで下のコードを実行したのですが、1回目の
split()と2回目のsplit()とで結果が異なります:

s = "abc\ndef\nghi"

a, b, c = s.split(/def\n/)
print "a:", a, "\n"
print "b:", b, "\n"
print "c:", c, "\n"

puts
a, b, c = s.split(/(def)\n/)
print "a:", a, "\n"
print "b:", b, "\n"
print "c:", c, "\n"

出力結果

a:abc

b:ghi

c:nil

a:abc

b:def
c:ghi
(空行)

これってバグですよね?

越水 (greentea / fa2.so-net.ne.jp)