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 {
        }
    }
public final void mRULE_RICH_TEXT_INBETWEEN ( ) throws RecognitionException { try { int _type = RULE_RICH_TEXT_INBETWEEN ; int _channel = DEFAULT_TOKEN_CHANNEL ; { match ( '�' ) ; 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 >= '' && LA19_4 <= '&' ) || ( LA19_4 >= '(' && LA19_4 <= '￼' ) || ( LA19_4 >= '' && LA19_4 <= '' ) ) ) { alt19 = 1 ; } } else if ( ( ( LA19_1 >= '' && LA19_1 <= '&' ) || ( LA19_1 >= '(' && LA19_1 <= '￼' ) || ( LA19_1 >= '' && LA19_1 <= '' ) ) ) { alt19 = 1 ; } } else if ( ( ( LA19_0 >= '' && LA19_0 <= '&' ) || ( LA19_0 >= '(' && LA19_0 <= '￼' ) || ( LA19_0 >= '' && LA19_0 <= '' ) ) ) { alt19 = 1 ; } switch ( alt19 ) { case 1 : { mRULE_IN_RICH_STRING ( ) ; } break ; default : break loop19 ; } } while ( true ) ; int alt21 = 2 ; int LA21_0 = input . LA ( 1 ) ; if ( ( LA21_0 == '\'' ) ) { alt21 = 1 ; } switch ( alt21 ) { case 1 : { match ( '\'' ) ; int alt20 = 2 ; int LA20_0 = input . LA ( 1 ) ; if ( ( LA20_0 == '\'' ) ) { alt20 = 1 ; } switch ( alt20 ) { case 1 : { match ( '\'' ) ; } break ; } } break ; } match ( '�' ) ; } state . type = _type ; state . channel = _channel ; } finally { } }
$ANTLR start "RULE_RICH_TEXT_INBETWEEN"