MySQL nie obsługuje obejść ani nie obsługuje \d lub \w zajęcia. Możesz podzielić wyrażenie regularne w ten sposób:
SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'
Gdzie:
REGEXP '^.{3,}$'- całkowita długość powinna wynosić 3 lub więcej znakówAND col NOT REGEXP '^[0-9]+$'- ciąg nie może składać się tylko z cyfrAND col NOT REGEXP '([^$&%@]*[$&%@]){4}'- ciąg nie może mieć 4 znaków specjalnychAND col NOT REGEXP '[[:alnum:]_]{11}'- ciąg nie może zawierać słowa z 11 znakami