Проблема заключается в следующем(для удобства я сокращу ваше длинное или до одного варианта):
^(?:(?!00).)*$
Проверка (?! ...) находится внутри группы со знаком *, то есть выполняется каждый раз когда reg Exp engine переходит к следующему символу. Для вашего случая данную проверку надо вынести за группу(а сами скобки группы вообще убрать — так как в ней останется только 1 элемент):
^(?!00).*$