Серьезно, это ужасно. Решение на основе getElementById / getElementsByTagName будет значительно более надежным и гибким.
Что касается самой проблемы, то, вероятно, это связано с тем, что поддержка многострочных регулярных выражений javascript небезопасна для x-браузера и, в частности, IE имеет проблемы. Удаление объявления таблицы, вероятно, заставит IE внутренне отформатировать оставшуюся разметку в одну строку (= успех), где его добавление обратно заставит IE добавить возврат каретки и т. Д. (= Сбой).
Я знаю, что вы сказали, что знаете, что есть лучшие способы, но вы не объяснили, почему вы будете настаивать на этом. Полагаясь на регулярное выражение и далее полагаясь на интерпретацию DOM в виде открытого текста IE, вы столкнетесь с такими проблемами. Не делай этого.