MySQL non supporta i lookaround, né supporta \d
o \w
classi. Puoi dividere la regex in questo modo:
SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'
Dove:
REGEXP '^.{3,}$'
- la lunghezza totale deve essere di 3 o più caratteriAND col NOT REGEXP '^[0-9]+$'
- la stringa non può essere composta solo da cifreAND col NOT REGEXP '([^$&%@]*[$&%@]){4}'
- la stringa non può avere 4 caratteri specialiAND col NOT REGEXP '[[:alnum:]_]{11}'
- la stringa non può contenere una parola con 11 caratteri