print_r()で取得した文字列を加工しようとしています。

preg_replace('/^( *)(.*)(Object)$/m', "...", $content);
preg_replace('/^( *)(.*)(Array)$/m', "...", $content);
だとうまくいくのですが、

preg_replace('/^( *)(.*)(Object|Array)$/m', "...", $content);
だと特定条件下でNULLを返してしまいます。(PHPマニュアルによるとエラー時にNULLを返す)

NULLになるのは、
$contentに外部から file_get_contents() したHTMLの一部をSmartyにassignしたものや、
同じく外部のHTMLを simplexml_import_dom() でSimpleXMLElementにパースしたものが入っている時です。
原因がさっぱりわかりません。何が考えられるでしょうか。