Редко, если вообще когда-либо правильно, использовать квантификатор с неохотой как последнюю вещь в регулярном выражении. В этом регулярном выражении:
/(Round\s+\d+)(.*?)/s
... первое, что делает часть (.*?)
, это пытается найти ноль символов. Это совершенно законное совпадение, и поскольку квантификатор неохотно, он тут же останавливается. Если вы собираетесь сделать это таким образом, после (.*?)
должно быть что-то вроде этого:
/(Round\s+\d+)(.*?)(Round\s+\d+)/s
Таким образом, (.*?)
не может останавливаться на нулевых символах; он должен сохранять совпадающие символы потребления, пока не достигнет места, где следующая часть регулярного выражения - (Round\s+\d+)
- может вступить во владение. Но вы не хотите использовать это регулярное выражение, потому что оно потребляет часть того, что должно быть в следующем матче. Придерживаясь этого формата, вы можете использовать заглядывание в качестве конечного условия:
/(Round\s+\d+)(.*?)(?=Round\s+\d+|$)/s
Теперь он вынужден соответствовать целой записи, но позиция совпадения остается в начале следующей записи, поэтому следующая попытка совпадения начинается там. (РЕДАКТИРОВАТЬ: добавлен |$
к предпросмотру, чтобы соответствовать последней записи.)
РЕДАКТИРОВАТЬ: Я хотел прокомментировать и другое ваше регулярное выражение:
/(Round\s+\d+)((?!Round).*?)/s
Здесь вместо использования положительного взгляда в качестве конечного условия создается впечатление, что вы пытаетесь использовать упреждающий отрицательный взгляд. Для того, чтобы это работало, предварительный просмотр должен выполняться в каждой позиции, прежде чем точка сможет использовать символ. Это означает, что точка должна быть заключена в круглые скобки с заглядыванием, с квантификатором вне их:
/(Round\s+\d+)((?:(?!Round).)*)/s
Вы не можете использовать квантификатор неохотно в этом регулярном выражении, по той же причине, что и другие.
Вероятно, есть лучший способ сделать это, но мне нужно знать больше о данных и ваших требованиях, прежде чем я смогу что-либо предложить.
(Обратите внимание, что я использовал Perl-подобный синтаксис с разделителями косой черты и модификатором 's' для однострочного режима, поскольку регулярные выражения обычно путают подсветку синтаксиса сайта без них.)