どの処理系かわかんないけどドットが改行にマッチするオプション指定で片づくんじゃないのかな。

PCREなら /pattern/s って s 修飾子つければ元のパターンのまま
期待通りの動作になってくれるようなの。