Regex para líneas que contienen una cadena y no contienen otra cadena

Tengo siguientes expresiones regulares a mano para que coincida con todas las líneas que contienenconsole.log() oalert() funcionen en cualquier archivo javascript abierto en el editor compatible con PCRE.

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

Pero me encuentro con muchos archivos que contienenwindow.alert() líneas para alertar mensajes importantes, no quiero eliminarlos / reemplazarlos.

Entonces, la pregunta de cómo regex-match (regex de una sola línea sin necesidad de ejecutarse con frecuencia) todas las líneas que contienenconsole.log() yalert() pero no contiene palabrawindow. También cómo escapar de corchetes (paréntesis) que son imposibles de evitar por\, para hacerlos parte de la cadena literal?

Intenté seguir regex pero en vano:

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta