docs: public final void mRULE_IN_RICH_STRING() throws RecognitionException {
          try {
              // InternalSARL.g:48781:30: ( ( '\\'\\'' ~ ( ( '\\uFFFD' | '\\'' ) ) | '\\'' ~ ( ( '\\uFFFD' | '\\'' ) ) | ~ ( ( '\\uFFFD' | '\\'' ) ) ) )
              // InternalSARL.g:48781:32: ( '\\'\\'' ~ ( ( '\\uFFFD' | '\\'' ) ) | '\\'' ~ ( ( '\\uFFFD' | '\\'' ) ) | ~ ( ( '\\uFFFD' | '\\'' ) ) )
              {
              // InternalSARL.g:48781:32: ( '\\'\\'' ~ ( ( '\\uFFFD' | '\\'' ) ) | '\\'' ~ ( ( '\\uFFFD' | '\\'' ) ) | ~ ( ( '\\uFFFD' | '\\'' ) ) )
              int alt35=3;
              int LA35_0 = input.LA(1);
  
              if ( (LA35_0=='\'') ) {
                  int LA35_1 = input.LA(2);
  
                  if ( (LA35_1=='\'') ) {
                      alt35=1;
                  }
                  else if ( ((LA35_1>='\u0000' && LA35_1<='&')||(LA35_1>='(' && LA35_1<='\uFFFC')||(LA35_1>='\uFFFE' && LA35_1<='\uFFFF')) ) {
                      alt35=2;
                  }
                  else {
                      NoViableAltException nvae =
                          new NoViableAltException("", 35, 1, input);
  
                      throw nvae;
                  }
              }
              else if ( ((LA35_0>='\u0000' && LA35_0<='&')||(LA35_0>='(' && LA35_0<='\uFFFC')||(LA35_0>='\uFFFE' && LA35_0<='\uFFFF')) ) {
                  alt35=3;
              }
              else {
                  NoViableAltException nvae =
                      new NoViableAltException("", 35, 0, input);
  
                  throw nvae;
              }
              switch (alt35) {
                  case 1 :
                      // InternalSARL.g:48781:33: '\\'\\'' ~ ( ( '\\uFFFD' | '\\'' ) )
                      {
                      match("''"); 
  
                      if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFC')||(input.LA(1)>='\uFFFE' && input.LA(1)<='\uFFFF') ) {
                          input.consume();
  
                      }
                      else {
                          MismatchedSetException mse = new MismatchedSetException(null,input);
                          recover(mse);
                          throw mse;}
  
  
                      }
                      break;
                  case 2 :
                      // InternalSARL.g:48781:59: '\\'' ~ ( ( '\\uFFFD' | '\\'' ) )
                      {
                      match('\''); 
                      if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFC')||(input.LA(1)>='\uFFFE' && input.LA(1)<='\uFFFF') ) {
                          input.consume();
  
                      }
                      else {
                          MismatchedSetException mse = new MismatchedSetException(null,input);
                          recover(mse);
                          throw mse;}
  
  
                      }
                      break;
                  case 3 :
                      // InternalSARL.g:48781:83: ~ ( ( '\\uFFFD' | '\\'' ) )
                      {
                      if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFC')||(input.LA(1)>='\uFFFE' && input.LA(1)<='\uFFFF') ) {
                          input.consume();
  
                      }
                      else {
                          MismatchedSetException mse = new MismatchedSetException(null,input);
                          recover(mse);
                          throw mse;}
  
  
                      }
                      break;
  
              }
  
  
              }
  
          }
          finally {
          }
      }