$dat = preg_replace("/\n/","",$dat);
$dat = preg_replace("/1(.*)4/m","\\1",$dat);
とすれば結果が23となるので改行が問題なのはわかるのですが/mをつけても
複数行にはマッチしないようです。複数行の解釈を間違えているのでしょうか?。