Expressions régulières : mot de passe complexe

3 heures d’enquête pour ça !
Voici l’expression régulière pour valider un mot de passe constitué ainsi :
– Doit avoir 6 caractères exactement
– Doit contenir 4 chiffres, 1 seule lettre (parmis A, B, C, D et E) et 1 seul caractère spécial (# ou @)
Tout ceci dans n’importe quel ordre.
L’espression régulière est donc la suivante :
^(?=(.*[0-9].*){4})(?=.*[A-E])(?=.*[@#]).{6}$
La difficulté provient de « 1 seule lettre » et « 1 seul spécial ». Ce qui revient à « 4 chiffres exactement ».
« 4 chiffres exactement » se traduit par la « look-back assertion » ou « traitement lookaround » suivant : (?=(.*[0-9].*){4})
 
Tests :

A#1234 : vrai

AB#123 : faux
1A#@12 : faux
1A#312 : vrai