RegEx de Java que coincide con cualquier cadena PERO literal 'NIL' o 'nil'

Ok muchachos. Aquí hay una pregunta de tipo entrevista de Java que parece haber sorprendido a algunas personas muy inteligentes por aquí. Realmente necesitan esto para el código de producción, por lo que es más que un simple rompecabezas de entrevistas.

Necesitan una expresión regular, en Java, que devuelve true si un literal de cadena escualquier cosa Aparte de la palabra NIL de 3 letras. La prueba debe ser sensible a mayúsculas y minúsculas, y el propio RegEx debe hacer todo el trabajo.

Por lo tanto, el RegEx debe rechazarNIL, nil, NiL, nIL, y así.

Sin embargo, debe aceptar: nile, anil, will, zappa-nil-a y la cadena vacía.

¿Cuántos desarrolladores de Java se necesitan para escribir un RegEx trivial? ¡Al parecer mucho!

Respuestas a la pregunta(2)

Su respuesta a la pregunta