Regex para linhas contendo uma sequência e não contendo outra sequência

Eu tenho o seguinte regex à mão para corresponder a todas as linhas que contêmconsole.log() oualert() função em qualquer arquivo javascript aberto no editor que suporta PCRE.

^.*\b(console\.log|alert)\b.*$

Mas encontro muitos arquivos contendowindow.alert() linhas para alertar mensagens importantes, não quero removê-las / substituí-las.

Portanto, a questão de como corresponder regex (regex de linha única sem precisar executar com freqüência) todas as linhas que contêmconsole.log() ealert() mas não contendo palavrawindow. Também como escapar de colchetes (parênteses) que são inevitáveis por\, para torná-los parte da string literal?

Eu tentei seguir regex, mas em vão:

^.*\b(console\.log|alert)((?!window).)*\b.*$

questionAnswers(1)

yourAnswerToTheQuestion