特定の文字列が含まれていない行にマッチする正規表現

まず、文字列hogeが含まれている行にマッチする正規表現は、

\v^.*hoge.*$

でOK。
それで、含まれていない行にマッチさせたいのだから、

\v^(.*hoge.*)@!$

\v(^.*hoge.*$)@!

としたくなるが、うまくいかない。@!は幅を持たないからだ。
だから、

\v(^.*hoge)@!.*$

とするとよい。最後の$は無くてもいい。