docs: public final void mRULE_RICH_TEXT_INBETWEEN() throws RecognitionException {
          try {
              int _type = RULE_RICH_TEXT_INBETWEEN;
              int _channel = DEFAULT_TOKEN_CHANNEL;
              // InternalSARL.g:16910:26: ( '\\uFFFD' ( RULE_IN_RICH_STRING )* ( '\\'' ( '\\'' )? )? '\\uFFFD' )
              // InternalSARL.g:16910:28: '\\uFFFD' ( RULE_IN_RICH_STRING )* ( '\\'' ( '\\'' )? )? '\\uFFFD'
              {
              match('\uFFFD'); 
              // InternalSARL.g:16910:37: ( RULE_IN_RICH_STRING )*
              loop19:
              do {
                  int alt19=2;
                  int LA19_0 = input.LA(1);
  
                  if ( (LA19_0=='\'') ) {
                      int LA19_1 = input.LA(2);
  
                      if ( (LA19_1=='\'') ) {
                          int LA19_4 = input.LA(3);
  
                          if ( ((LA19_4>='\u0000' && LA19_4<='&')||(LA19_4>='(' && LA19_4<='\uFFFC')||(LA19_4>='\uFFFE' && LA19_4<='\uFFFF')) ) {
                              alt19=1;
                          }
  
  
                      }
                      else if ( ((LA19_1>='\u0000' && LA19_1<='&')||(LA19_1>='(' && LA19_1<='\uFFFC')||(LA19_1>='\uFFFE' && LA19_1<='\uFFFF')) ) {
                          alt19=1;
                      }
  
  
                  }
                  else if ( ((LA19_0>='\u0000' && LA19_0<='&')||(LA19_0>='(' && LA19_0<='\uFFFC')||(LA19_0>='\uFFFE' && LA19_0<='\uFFFF')) ) {
                      alt19=1;
                  }
  
  
                  switch (alt19) {
              	case 1 :
              	    // InternalSARL.g:16910:37: RULE_IN_RICH_STRING
              	    {
              	    mRULE_IN_RICH_STRING(); 
  
              	    }
              	    break;
  
              	default :
              	    break loop19;
                  }
              } while (true);
  
              // InternalSARL.g:16910:58: ( '\\'' ( '\\'' )? )?
              int alt21=2;
              int LA21_0 = input.LA(1);
  
              if ( (LA21_0=='\'') ) {
                  alt21=1;
              }
              switch (alt21) {
                  case 1 :
                      // InternalSARL.g:16910:59: '\\'' ( '\\'' )?
                      {
                      match('\''); 
                      // InternalSARL.g:16910:64: ( '\\'' )?
                      int alt20=2;
                      int LA20_0 = input.LA(1);
  
                      if ( (LA20_0=='\'') ) {
                          alt20=1;
                      }
                      switch (alt20) {
                          case 1 :
                              // InternalSARL.g:16910:64: '\\''
                              {
                              match('\''); 
  
                              }
                              break;
  
                      }
  
  
                      }
                      break;
  
              }
  
              match('\uFFFD'); 
  
              }
  
              state.type = _type;
              state.channel = _channel;
          }
          finally {
          }
      }