Как сделать такую регулярку?
MySQL использует синтаксис POSIX ERE.
Следовательно, shorthand class \d использовать нельзя, нужно писать [0-9].
Далее, ?! - это negative lookahead, который не поддерживается. Но если переписать выражение, как ^[0-9]{6}.*, оно даст, естественно, обратный эффект - "только строки, начинающиеся с шести цифр".
Но не забываем, что мы пишем SQL-запрос, а не просто регулярку. Потому вот это сработает:SELECT .. WHERE myfield NOT REGEXP '^[0-9]{6}.*'
Оно?^(?![\d]{6}).*