Это же не отрицание выражения. Это наличие в строке позиции, за
которой следует строка, не соответствующая выражению в скобках. (
zero-width negative lookahead assertion).
А что мешает всё выражение туда поместить ? Например, вот так:
~ "(?!^....$)"
Игорь Сысоев
http://sysoev.ru