正規表現の行頭・行末と文字列先頭・末尾

「たのしいRuby」を読み始めてから、はや3週間目です。1,2週間で読み終えるつもりだったのですが、ダイエット方面などに浮気してしまってなかなか進んでいません。

Rubyと直接関係はありませんが、今日読んでいた正規表現クラスの章での新発見。「^」と「$」がマッチするのは行頭・行末であって、対象の文字列の先頭・末尾ではないんですね。つまり「^」は「012\nABC」のABCの前にもマッチすると。

ちなみに文字列先頭・末尾にマッチする記号は別にあって、「\A」と「\Z」だそうです。

いままで何度か正規表現を使ったプログラムを書いてきましたが、知りませんでした。