Вместо того, чтобы смотреть назад, вы можете сопоставить главу 1 до введения. Затем используйте группу захвата с повторяющимся шаблоном, которая проверяет, начинается ли строка с главы 2.
^Chapter 1[\r\n]+Introduction[\r\n]+((?:(?!Chapter 2).*(?:\r?\n|$))*)
По частям
^
Начало строки Chapter 1[\r\n]+
Совпадение с главой 1 и 1+ новыми строками Introduction[\r\n]+ Match Introduction and 1+ newlines
(
Захват группа 1 (?:
Группа без захвата (?!Chapter 2).*
Отрицательный прогноз, проверка не начинается с Главы 2 (?:\r?\n|$)
Сопоставьте либо новую строку, либо подтвердите конец строки
)*
Закрытьгруппа без захвата и повторение 0+ раз
)
Закрыть группу захвата 1
Regex demo
Если вам нужны совпадения для всех глав, вы можете изменить число 1 на \d+
и число 2 в \d
См. Еще одну демонстрацию regex