L'expression régulière
^(?!((.*[\d][13579].*){5})).*([\d][13579].*){4}$
vérifie beaucoup plus de chose que ton
[012][13579] - [012][13579] - [012][13579] - [012][13579] - [012][02468] - [012][02468] - [012][02468] - [012][02468] - [012][02468] - [012][02468] - [012][02468] - [012][02468]
(qui ne fait pas le job, elle valide juste 4impairs et 8pairs dans cette ordre strictement)
Elle valide toutes les combinaisons possibles.
Donc, si je ne m'abuse, elle doit vérifier 143 (12²-1) combinaisons de plus que l'autre.
(donc ça se tient en terme de durée)
Ce n'est pas gênant, du moment que le résultat corresponds a ma demande.
Merci