Um número par de A's pode ser expresso como
(AA)+ (uma ou mais instâncias de AA; então vai combinar com AA, AAAA, AAAAAA...). Um número ímpar de Gs pode ser expresso como G(GG)* (um G seguido por zero ou mais instâncias de GG , para que corresponda a G, GGG, GGGGG...). Junte isso e você terá:
/(AA)+G(GG)*TC/
No entanto, como os mecanismos regex tentarão corresponder o máximo possível, essa expressão corresponderá a uma substring de
AAAGGGTC (ou seja, AAGGGTC )! Para evitar isso, você pode usar um olhar por trás negativo
para garantir que o caractere antes do primeiro A não é outro A :/(?<!A)(AA)+G(GG)*TC/
...exceto que o MySQL não suporta lookarounds em seus regexes.
O que você pode fazer é especificar que o padrão comece no início da string (ancorado por
^ ), ou é precedido por um caractere que não seja A:/(^|[^A])(AA)+G(GG)*TC/
Mas note que com este padrão um caractere extra será capturado se o padrão não for encontrado no início da string, então você terá que cortar o primeiro caractere se não for um A.