ふなばです。

素早い対応ありがとうございます。

>  \Zは文字列末尾直前の改行にもマッチする

これは改行コードじゃなくて、改行なんでしょうね。行末といっていいのかな。
ちょっと考えていたのと違うんで (勝手な解釈ができあがっていたのですが :-)、
妙な感じがしますが、こういうものだったんですね。文字列末尾というよりは、
最後の行の行末なのかな。

ついでなんですが、ヒアドキュメントが空だと構文エラーになってしまうこと
があるようなんですが、

foo = <<'RUBY'
RUBY
print foo

これはどうですか。

--Tadayoshi Funaba