Por que é re.findall não sendo específico em encontrar itens triplet em string. Python

Então eu tenho quatro linhas de código

seq= 'ATGGAAGTTGGATGAAAGTGGAGGTAAAGAGAAGACGTTTGA'



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

Deixe-me explicar o que estou tentando fazer primeiro. . . Me desculpe se isso é confuso, mas eu vou tentar o meu melhor para explicar isso.

Então, estou procurando sequências que começam com'ATG' seguido por unidades de 3 de qualquer palavra char [por exemplo, 'GGG', 'GTT', 'TTA', etc] até encontrar um'TAA', 'TAG' ou 'TGA' Eu também quero que eles tenham pelo menos 30 caracteres. . . daí o {9,}?

Isso funciona em algum grau, mas se você notarseq que existeATG GAA GTT GGATGA AAG TGG AGGTAA AGA GAA GAC GTTTGA

Então, neste caso, ele deve estar encontrando 'ATGGAAGTTGGATGA' se começar com o primeiro 'ATG' e vai até o próximo'TAA', 'TAG' ou 'TGA'

No entanto, quando você executa a linha de código OR_0, ela retorna toda a string seq. Eu não sei como fazer com que considere apenas o primeiro 'TAA', 'TAG' ou 'TGA' seguido do primeiro 'ATG'

Se um 'ATG' é seguido por outro 'ATG' quando lido em unidades de 3, então isso é certo, ele não deve começar de novo, mas se encontrar um 'TAA', 'TAG' ou 'TGA' quando lido em unidades de 3 deve parar.

Minha pergunta,Por que é interessante encontrar a sequência mais longa de 'ATG'xxx-xxx - [' TAA ',' TAG 'ou' TGA '] em vez da primeira ocorrência de' TAA ',' TAG 'ou' TGA 'após um ATG separados por caracteres de palavra em unidades de 3?

Mais uma vez, peço desculpas se isso é confuso, mas está atrapalhando vários conjuntos de dados que eu baseei nessa linha inicial de texto e estou tentando descobrir por que

questionAnswers(4)

yourAnswerToTheQuestion