Почему re.findall не конкретен в поиске триплетных элементов в строке. питон

Итак, у меня есть четыре строки кода

seq= 'ATGGAAGTTGGATGAAAGTGGAGGTAAAGAGAAGACGTTTGA'



OR_0 = re.findall(r'ATG(?:...){9,}?(?:TAA|TAG|TGA)',seq)  

Позвольте мне объяснить, что я пытаюсь сделать в первую очередь. , , Извините, если это сбивает с толку, но я постараюсь объяснить это.

Поэтому я ищу последовательности, которые начинаются с'ATG' с последующими единицами из 3 любого слова char [например, «GGG», «GTT», «TTA» и т. Д.], Пока не встретится«TAA», «TAG» или «TGA» Я также хочу, чтобы они были длиной не менее 30 символов. , , отсюда {9,}?

Это работает в некоторой степени, но если вы заметили всл что там естьATG GAA GTT GGATGA AAG TGG AGGТАА AGA GAA GAC GTTTGA

Так что в этом случае, он должен найти 'ATGGAAGTTGGATGA', если он начинается с первого 'ATG' и продолжается до следующего«TAA», «TAG» или «TGA»

ОДНАКО, когда вы запускаете строку кода OR_0, она выплевывает всю строку seq. Я не знаю, как заставить его рассматривать только первые «TAA», «TAG» или «TGA», за которыми следует первый «ATG»

Если за «ATG» следует другое «ATG» при чтении в единицах 3, то это нормально, оно НЕ должно начинаться заново, но если встречается «TAA», «TAG» или «TGA» при чтении в единицах 3 это должно прекратиться.

Мой вопрос,почему re.findall находит самую длинную последовательность 'ATG'xxx-xxx - [' TAA ',' TAG 'или' TGA '] вместо первого появления' TAA ',' TAG 'или' TGA 'после ATG разделенные символами слова в единицах 3?

Еще раз, я прошу прощения, если это сбивает с толку, но это путается с несколькими наборами данных, которые я основал на этой исходной строке текста, и я пытаюсь выяснить, почему

Ответы на вопрос(4)

Ваш ответ на вопрос