Java RegEx que corresponde a qualquer coisa, mas literal string 'NIL' ou 'nil'

Ok pessoal. Aqui está uma questão do tipo de entrevista Java que parece ter confundido algumas pessoas muito inteligentes por aqui. Eles realmente precisam disso para o código de produção, então é mais do que apenas um quebra-cabeças de entrevista.

Eles precisam de uma expressão regular, em Java, que retorne true se um literal de string forqualquer coisa diferente da palavra de 3 letras NIL. O teste precisa ser insensível a maiúsculas e minúsculas e o próprio RegEx deve fazer todo o trabalho.

Então, o RegEx deve rejeitarNIL, nada, NiL, nIL, e assim por diante.

Ele deve, no entanto, aceitar: nile, anil, will, zappa-nil-a e a string vazia.

Quantos desenvolvedores Java são necessários para escrever um RegEx trivial? Aparentemente muito!

questionAnswers(2)

yourAnswerToTheQuestion