code: def t_begin_singlequote(self, t):
          r"(?<!\\)'"
          t.lexer.push_state('singlequote')
          # t.lexer.begin('singlequote')
          t.type = 'CAST_TYPE'
          t.type = 'SINGLEQUOTE_START'
          return f t_begin_singlequote(self, t):
          r"(?<!\\)'"
          t.lexer.push_state('singlequote')
          # t.lexer.begin('singlequote')
          t.type = 'CAST_TYPE'
          t.type = 'SINGLEQUOTE_START'
          return t
docs: r"(?<!\\)