The issue if found in Groovy Eclipse.
~"(?i)^sometext$", // SMART TAB FAILS AFTER HERE.
// ESCAPE THE DOLLAR SIGN AND THE WORLD SPINS AGAIN
~"(?i)^vti", // Sub-folder exclusion Filter
Press enter at the end of the line and observe NPE in the log. NPE occurs in the method due to the null parser field.
The body of GroovyLexer#require(...) has a reference to parser that may not be set all the time. Furthermore the TODO comment in the method body states that error reporting should be done without parser usage: "Direct to a common error handler, rather than through the parser".