正規表現における $ では、改行が消えてしまうので困っています。

スクリプト:
--------------------
str = "AAA\nBBB\nCCC"
str.scan(/(^.*$)/) do
 p $1
end
--------------------

実行結果:
"AAA"    ← "AAA\n" であってほしい
"BBB"    ← "BBB\n" であってほしい
"CCC"

このとき、"AAA"ではなく"AAA\n"、"BBB"ではなく"BBB\n"であってほしいのですが
そんなことは可能でしょうか。