docs: public final void mRULE_RICH_TEXT_START() throws RecognitionException {
          try {
              int _type = RULE_RICH_TEXT_START;
              int _channel = DEFAULT_TOKEN_CHANNEL;
              // InternalSARL.g:16906:22: ( '\\'\\'\\'' ( RULE_IN_RICH_STRING )* ( '\\'' ( '\\'' )? )? '\\uFFFD' )
              // InternalSARL.g:16906:24: '\\'\\'\\'' ( RULE_IN_RICH_STRING )* ( '\\'' ( '\\'' )? )? '\\uFFFD'
              {
              match("'''"); 
  
              // InternalSARL.g:16906:33: ( RULE_IN_RICH_STRING )*
              loop12:
              do {
                  int alt12=2;
                  int LA12_0 = input.LA(1);
  
                  if ( (LA12_0=='\'') ) {
                      int LA12_1 = input.LA(2);
  
                      if ( (LA12_1=='\'') ) {
                          int LA12_4 = input.LA(3);
  
                          if ( ((LA12_4>='\u0000' && LA12_4<='&')||(LA12_4>='(' && LA12_4<='\uFFFC')||(LA12_4>='\uFFFE' && LA12_4<='\uFFFF')) ) {
                              alt12=1;
                          }
  
  
                      }
                      else if ( ((LA12_1>='\u0000' && LA12_1<='&')||(LA12_1>='(' && LA12_1<='\uFFFC')||(LA12_1>='\uFFFE' && LA12_1<='\uFFFF')) ) {
                          alt12=1;
                      }
  
  
                  }
                  else if ( ((LA12_0>='\u0000' && LA12_0<='&')||(LA12_0>='(' && LA12_0<='\uFFFC')||(LA12_0>='\uFFFE' && LA12_0<='\uFFFF')) ) {
                      alt12=1;
                  }
  
  
                  switch (alt12) {
              	case 1 :
              	    // InternalSARL.g:16906:33: RULE_IN_RICH_STRING
              	    {
              	    mRULE_IN_RICH_STRING(); 
  
              	    }
              	    break;
  
              	default :
              	    break loop12;
                  }
              } while (true);
  
              // InternalSARL.g:16906:54: ( '\\'' ( '\\'' )? )?
              int alt14=2;
              int LA14_0 = input.LA(1);
  
              if ( (LA14_0=='\'') ) {
                  alt14=1;
              }
              switch (alt14) {
                  case 1 :
                      // InternalSARL.g:16906:55: '\\'' ( '\\'' )?
                      {
                      match('\''); 
                      // InternalSARL.g:16906:60: ( '\\'' )?
                      int alt13=2;
                      int LA13_0 = input.LA(1);
  
                      if ( (LA13_0=='\'') ) {
                          alt13=1;
                      }
                      switch (alt13) {
                          case 1 :
                              // InternalSARL.g:16906:60: '\\''
                              {
                              match('\''); 
  
                              }
                              break;
  
                      }
  
  
                      }
                      break;
  
              }
  
              match('\uFFFD'); 
  
              }
  
              state.type = _type;
              state.channel = _channel;
          }
          finally {
          }
      }