Проблема с каталогическим обратным следом с HTML

Я пытаюсь очистить серию веб-страниц с помощью PHP, захватив все содержимое между тегом и самым ранним тегом. Это регулярное выражение, которое я использую:

|(?<=div id="body">).*?</div>|s 

Кажется, что это работает отлично для большинства страниц, на которые я смотрю. Однако это не возвращает ничего для нескольких других. Я подключил регулярное выражение к тестеру regex101.com, и он сказал мне, что проблема связана с катастрофическим отступлением. Я попытался удалить язык lookbehind и даже играть с такими вещами, как:

 |id="body">.*?</div>|s 

Однако проблема все еще сохраняется. Я рассмотрел некоторые другие вопросы о катастрофическом обратном отслеживании, а также статью http://www.regular-expressions.info/catastrophic.html , но я не могу понять, как применить их исправления к этому конкретному случаю.