docs: public final void mEscapeSequence() throws RecognitionException {
  		try {
  			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:126:5: ( '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' ) | UnicodeEscape | OctalEscape )
  			int alt54=3;
  			int LA54_0 = input.LA(1);
  			if ( (LA54_0=='\\') ) {
  				switch ( input.LA(2) ) {
  				case '\"':
  				case '$':
  				case '&':
  				case '\'':
  				case '(':
  				case ')':
  				case '*':
  				case '+':
  				case '-':
  				case '.':
  				case '?':
  				case 'A':
  				case 'B':
  				case 'D':
  				case 'E':
  				case 'G':
  				case 'Q':
  				case 'S':
  				case 'W':
  				case 'Z':
  				case '[':
  				case '\\':
  				case ']':
  				case '^':
  				case 'a':
  				case 'b':
  				case 'c':
  				case 'd':
  				case 'e':
  				case 'f':
  				case 'n':
  				case 'o':
  				case 'p':
  				case 'r':
  				case 's':
  				case 't':
  				case 'w':
  				case 'x':
  				case 'z':
  				case '{':
  				case '|':
  				case '}':
  					{
  					alt54=1;
  					}
  					break;
  				case 'u':
  					{
  					alt54=2;
  					}
  					break;
  				case '0':
  				case '1':
  				case '2':
  				case '3':
  				case '4':
  				case '5':
  				case '6':
  				case '7':
  					{
  					alt54=3;
  					}
  					break;
  				default:
  					if (state.backtracking>0) {state.failed=true; return;}
  					int nvaeMark = input.mark();
  					try {
  						input.consume();
  						NoViableAltException nvae =
  							new NoViableAltException("", 54, 1, input);
  						throw nvae;
  					} finally {
  						input.rewind(nvaeMark);
  					}
  				}
  			}
  
  			else {
  				if (state.backtracking>0) {state.failed=true; return;}
  				NoViableAltException nvae =
  					new NoViableAltException("", 54, 0, input);
  				throw nvae;
  			}
  
  			switch (alt54) {
  				case 1 :
  					// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:126:9: '\\\\' ( 'b' | 'B' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' | '.' | 'o' | 'x' | 'a' | 'e' | 'c' | 'd' | 'D' | 's' | 'S' | 'w' | 'W' | 'p' | 'A' | 'G' | 'Z' | 'z' | 'Q' | 'E' | '*' | '[' | ']' | '(' | ')' | '$' | '^' | '{' | '}' | '?' | '+' | '-' | '&' | '|' )
  					{
  					match('\\'); if (state.failed) return;
  					if ( input.LA(1)=='\"'||input.LA(1)=='$'||(input.LA(1) >= '&' && input.LA(1) <= '+')||(input.LA(1) >= '-' && input.LA(1) <= '.')||input.LA(1)=='?'||(input.LA(1) >= 'A' && input.LA(1) <= 'B')||(input.LA(1) >= 'D' && input.LA(1) <= 'E')||input.LA(1)=='G'||input.LA(1)=='Q'||input.LA(1)=='S'||input.LA(1)=='W'||(input.LA(1) >= 'Z' && input.LA(1) <= '^')||(input.LA(1) >= 'a' && input.LA(1) <= 'f')||(input.LA(1) >= 'n' && input.LA(1) <= 'p')||(input.LA(1) >= 'r' && input.LA(1) <= 't')||(input.LA(1) >= 'w' && input.LA(1) <= 'x')||(input.LA(1) >= 'z' && input.LA(1) <= '}') ) {
  						input.consume();
  						state.failed=false;
  					}
  					else {
  						if (state.backtracking>0) {state.failed=true; return;}
  						MismatchedSetException mse = new MismatchedSetException(null,input);
  						recover(mse);
  						throw mse;
  					}
  					}
  					break;
  				case 2 :
  					// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:130:9: UnicodeEscape
  					{
  					mUnicodeEscape(); if (state.failed) return;
  
  					}
  					break;
  				case 3 :
  					// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:131:9: OctalEscape
  					{
  					mOctalEscape(); if (state.failed) return;
  
  					}
  					break;
  
  			}
  		}
  		finally {
  			// do for sure before leaving
  		}
  	}