Dlaczego re.findall nie jest specyficzny w znajdowaniu elementów trypletowych w łańcuchu. Pyton

Mam więc cztery linie kodu

seq= 'ATGGAAGTTGGATGAAAGTGGAGGTAAAGAGAAGACGTTTGA'



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

Pozwól mi wyjaśnić, co próbuję zrobić w pierwszej kolejności. . . Przepraszam, jeśli to jest mylące, ale postaram się jak najlepiej to wyjaśnić.

Więc szukam sekwencji, z którymi START„ATG” po których następują jednostki 3 dowolnych znaków [np. „GGG”, „GTT”, „TTA”, itd.] Aż do napotkania albo„TAA”, „TAG” lub „TGA” Chcę również, aby miały długość co najmniej 30 znaków. . . stąd {9,}?

Działa to do pewnego stopnia, ale jeśli zauważysz toseq tam jestATG GAA GTT GGATGA AAG TGG AGGTAA AGA GAA GAC GTTTGA

Więc w tym przypadku powinno znajdować się „ATGGAAGTTGGATGA”, jeśli zaczyna się od pierwszego „ATG” i idzie do następnego„TAA”, „TAG” lub „TGA”

JEDNAK po uruchomieniu linii kodu OR_0 wypluwa cały ciąg seq. Nie wiem, jak to zrobić, aby rozważyć tylko pierwsze „TAA”, „TAG” lub „TGA”, a następnie pierwsze „ATG”

Jeśli po „ATG” następuje kolejne „ATG”, gdy czyta się je w jednostkach 3, to jest to w porządku, NIE powinno się zaczynać od nowa, ale jeśli napotka „TAA”, „TAG” lub „TGA”, gdy jest czytane w jednostkach 3 powinien się zatrzymać.

Moje pytanie,dlaczego warto znaleźć najdłuższą sekwencję „ATG'xxx-xxx - [„ TAA ”,„ TAG ”lub„ TGA ”] zamiast pierwszego wystąpienia„ TAA ”,„ TAG ”lub„ TGA ”po ATG oddzielone znakami słownymi w jednostkach 3?

Jeszcze raz przepraszam, jeśli jest to mylące, ale jego bałagan z wieloma zestawami danych, które oparłem na tej początkowej linii tekstu i próbuję dowiedzieć się, dlaczego

questionAnswers(4)

yourAnswerToTheQuestion