    # Comments
    not_comment # comment

    =begin
    comment
    =end

      =begin
      not_comment
      =end

    #string interpolation
    12.times do |x|
      "Chapter #{x+1}:"
    end
    # Strings
    'string'
    "string"
    %q(string)
    %q[string]
    %q{string}
    %q<string>
    %q|string|
    %Q(string)
    %Q[string]
    %Q{string}
    %Q<string>
    %Q|string|

    foo('string', 'string')

    "unsupported\"string"

    # Heredocs
    if true
      DOC = foo(<<-DOC)
    heredoc
      xxx
        xxx
      DOC
      # ^heredoc ends here
    DOC
    end

    if true
      DOC = foo(<<DOC)
    heredoc
      xxx
        xxx
      DOC
    DOC
    # ^heredoc ends here
    end

    # Symbols
    :symbol
    :'long symbol'
    :"long symbol"

    # Regular Expressions
    /regex/xxx
    %r(regex)xxx
    %r[regex]xxx
    %r{regex}xxx
    %r<regex>xxx
    %r|regex|xxx

    foo(/regex/xxx, /regex/xxx)
    @path.sub(/^#{@root}/, '')

    /unsupported\/regex/

    # Classes
    class Test < Object
      attr_accessor :z
    end

    x = Test.method(1, 2)
    x = Test::method(1, 2)
    x = Test::CONSTANT

    # Methods
    def method(x, y)
      z = 3
    end

    def self.method(x, y)
      z = 3
    end

    # Sigils
    $stderr.puts 3
    @@foo = 3
    @foo = 3

    # Data Structures
    [:value]
    ['value']
    {:key=>'value'}
    {:key => 'value'}
    {'key' => 'value'}
    {key: 'value'}
    foo(:key => 'value')
    foo(key: 'value')

    # Classes, modules, etc.
    module Foo
      CONSTANT = 'An \'escaped\' string'
      class Bar
        def self.something
        begin
          1 + 1
        rescue StandardError => e
          puts "Whoa buddy!"
        end

        class << self
          def something
            1 + 1
          end
        end

        def something
        end
      end
    end

    class MyClass < ::Foo::Bar
    end

    foo(::Foo::Bar.something)

    __END__
    if (parsed)
      "this should not be classified as a string"
    else
      raise "Epic Fail"
    end