Вы проверили свой Regex? Regex жадные. Это означает, что по умолчанию возвращается самое длинное совпадение.
Так что, если ваш HTML выглядит примерно так:
<html>
...
<!-- first script element -->
<script>...RTE_ConvertTextAreaToRichEdit...</script>
<!-- first script element ends -->
<!-- second script element -->
<script>...</script>
<!-- second script element ends -->
...
</html>
Regex сопоставляет все элементы между началом первого элемента сценария и концом второго элемента сценария. После замены ваш вывод должен быть:
<html>
...
<!-- first script element -->
<!-- second script element ends -->
...
</html>
Вы можете превратить свое регулярное выражение в неуклюжего или ленивого (найдите наименьшее возможное соответствие) Добавить ? после * и это должно сделать:
Regex regex = new Regex(@"<script>.*?RTE_ConvertTextAreaToRichEdit.*?</script>");
Это может решить проблему. Смотрите здесь для получения дополнительной информации.