Я предполагаю, что, возможно,
(?i)(?<!see )(?<!\d)(?<!")(?<!“)ITEM.*?1A.*?\n*(?<!")(?<!“)RISK.*?FACTORS(?<!")\n*([^\r\n]{5,}?)\s*\n*ITEM.*?1B
может быть несколько близко к тому, что вы имеете в виду, хотя и не уверен.
Возможно также работать с флагом re.DOTALL
:
import re
regex = r'(?i)(?<!see )(?<!\d)(?<!")(?<!“)ITEM.*?1A.*?\n*(?<!")(?<!“)RISK.*?FACTORS(?<!")\n*([^\r\n]{5,}?)\s*\n*ITEM.*?1B'
string = '''
ITEM 1A. RISK FACTORS
123
ITEM 1B.
ITEM 1A. RISK FACTORS
In addition to other information in this Form 10-K, the following risk factors should be carefully considered in evaluating us and our business because these factors currently have a significant impact or
ITEM 1B.
'''
print(re.findall(regex, string, re.DOTALL))
Вывод
['В дополнение к другой информации в этой форме 10-KСледующие факторы риска должны быть тщательно рассмотрены при оценке нас и нашего бизнеса, потому что эти факторы в настоящее время оказывают значительное влияние или ']
Если вы хотите упростить / изменить / изучить выражение,это было объяснено на верхней правой панели regex101.com . Если хотите, вы также можете посмотреть в эту ссылку , как она будет сопоставляться с некоторыми примерами ввода.