If the formal rules are:
"Numbers >= 4 AND characters == 1"
, . - Pushdown .
"Numbers == 4 AND characters == 1" ( ):
([a-zA-Z][0-9]{4,})|([0-9][a-zA-Z][0-9]{3,})|([0-9]{2,}[a-zA-Z][0-9]{2,})|([0-9]{3,}[a-zA-Z][0-9])|([0-9]{4,}[a-zA-Z])
ruls
"( + ) >= 4 >= 1" :
([a-zA-Z]([a-zA-Z]|[0-9]){4,})|(([a-zA-Z]|[0-9])[a-zA-Z]([a-zA-Z]|[0-9]){3,})|(([a-zA-Z]|[0-9]){2,}[a-zA-Z]([a-zA-Z]|[0-9]){2,})|(([a-zA-Z]|[0-9]){3,}[a-zA-Z]([a-zA-Z]|[0-9]))|(([a-zA-Z]|[0-9]){4,}[a-zA-Z])
- , . .