Синтаксис (?:...)
не означает, что вложенный шаблон будет исключен из группы захвата, включающей (?:...)
. Это означает, что группа, образованная (?:...)
, не будет создавать новую группу захвата. Другими словами, если они заключены в группу захвата, эта группа захвата будет захватывать символы, совпадающие с группой без захвата.
Если вы действительно хотите игнорировать встроенные \r
s и \n
s, лучше всего удалить их на втором шаге. Вы не говорите, какой язык используете, но что-то эквивалентное этому (Python) должно работать:
s = re.sub(r'[\r\n]', '', s)