Есть HTML
<table>
....
<!--ID 25--></table>
<table>
....
<!--ID 26--></table>
Регулярка
<table>(.*)<!--ID [0-9]{0,4}--></table>
возвращает полностью код, содержащий 2 таблицы сразу.
Как запросить, чтобы регулярка вернула каждую таблицу по отдельности?
Надо уменьшить жадность квантификатора, то есть заменить * ("жадная" версия) *? ("ленивой" версией). Вот так:
<table>(.*?)<!--ID [0-9]{0,4}--><\/table>
^^
Или (если библиотека регулярных выражений не поддерживает модификатор DOTALL)
<table>([\s\S]*?)<!--ID [0-9]{0,4}--><\/table>
^^^^^^^^
Посмотреть пример работы
Продвижение своими сайтами как стратегия роста и независимости