PHP 5.1.x appears to handle backslash escaped characters differently from 5.2/5.3.
Example: core/SmartyPlugins/output.cachebuster where php 5.1.x reports preg_replace() [function.preg-replace]: Unknown modifier '.'
Propose using:
$pattern = array(
'~<script type="text/javascript" src="([^"]+)">~',
'~<script src="([^"]+)" type="text/javascript">~',
'~<link rel="stylesheet" type="text/css" href="([^"]+)"~',
);
I'm marking this as fixed cause I don't see anything more that can done here, other than to recommend using a newer version of PHP.
See changesets [1377, [1378].