    # File lib/yard/parser/ruby/legacy/ruby_lex.rb, line 1311
          def read_escape
            res = ""
            case ch = getc
            when /[0-7]/
              ungetc ch
              3.times do
              case ch = getc
              when /[0-7]/
              when nil
                break
              else
                ungetc
                break
              end
              res << ch
            end

            when "x"
              res << ch
              2.times do
              case ch = getc
              when /[0-9a-fA-F]/
              when nil
                break
              else
                ungetc
                break
              end
                res << ch
              end

            when "M"
              res << ch
              if (ch = getc) != '-'
                ungetc
              else
                res << ch
                if (ch = getc) == "\\" #"
                  res << ch
                  res << read_escape
                else
                  res << ch
                end
              end

            when "C", "c" #, "^"
              res << ch
              if ch == "C" and (ch = getc) != "-"
                ungetc
              else
                res << ch
                if (ch = getc) == "\\" #"
                  res << ch
                  res << read_escape
                else
                  res << ch
                end
              end
            else
              res << ch
            end
            res
          end