У вас есть несколько вариантов сделать это. Первый - lookbehind . Вам следует заменить ':'
на '<='
. К сожалению, он не поддерживает шаблоны переменной длины. Так что допускается только один пробел
ss='(1) This is my first sentence, it has to be captured. This is my second sentence.'
re.search(r'(?<=\([0-9]\)\s).*?[.!?]', ss).group(0)
Вывод:
'This is my first sentence, it has to be captured.'
Вы также можете искать группу:
re.search(r'\([0-9]\)\s+(.*?[.!?])', ss).group(1)
Вывод:
'This is my first sentence, it has to be captured.'
Позволяет использовать шаблоны переменной длины
Оба варианта с минимальными изменениями исходного шаблона.