Да, пробел и я не вставлял. И кстати слеш перед перед /script> тоже стоял, может форум проглотил.
Действительно модификатор m не нужен.
Если просто описать задачу не привязываясь к данному конкретному случаю, то нужно заменить часть текста, после которой не идёт определённая последовотельность символов.
Хочется знать для общего развития как это можно сделать одним регом. А не несколькими или callback\'ом
Тесты:
$text = "
<script>
//<!--
var = 1;
//-->
</script>
<body ....>
<!--
#comments
-->
other html content
";
echo preg_replace("/<!--.*-->\\\\s*(?!<\\\\/script>)/isU", "", $text);
Результат:
other html content