A substituição de ^(?:nunc (KEEP THIS LINE.*)|.*\n)$ por atingirá a saída desejada:
-
Devido ao alternador (
|), a expressão^(?:nunc (KEEP THIS LINE.*)?|.*\n)$forçará a correspondência da linha inteira, sem capturá-la (?:designa um grupo sem captura). -
Se a linha começar com
nunc KEEP THIS LINE,se referirá ao interior dos parênteses, isto é, a string começando comKEEP THIS LINEe terminando no final da linha. -
Se a linha não começar com
nunc KEEP THIS LINE,.*\ncorresponderá à linha inteira, incluindo o caractere de nova linha de término.
A expressão regular acima funciona bem com o Perl.
No Notepad ++ com quebras de linha do Windows, você pode usá-lo:
^(?:nunc (KEEP THIS LINE.*)|.*(\r\n)?)
Observe que isso só removerá a última linha e não a removerá.