new_regexp (RubyParser)

    # File lib/ruby_parser_extras.rb, line 589
      def new_regexp val
        node = val[1] || s(:str, '')
        options = val[2]

        o, k = 0, nil
        options.split(//).uniq.each do |c| # FIX: this has a better home
          v = {
            'x' => Regexp::EXTENDED,
            'i' => Regexp::IGNORECASE,
            'm' => Regexp::MULTILINE,
            'o' => Regexp::ONCE,
            'n' => Regexp::ENC_NONE,
            'e' => Regexp::ENC_EUC,
            's' => Regexp::ENC_SJIS,
            'u' => Regexp::ENC_UTF8,
          }[c]
          raise "unknown regexp option: #{c}" unless v
          o += v
          k = c if c =~ /[esu]/
        end

        case node[0]
        when :str then
          node[0] = :lit
          node[1] = if k then
                      Regexp.new(node[1], o, k)
                    else
                      Regexp.new(node[1], o)
                    end
        when :dstr then
          if options =~ /o/ then
            node[0] = :dregx_once
          else
            node[0] = :dregx
          end
          node << o if o and o != 0
        else
          node = s(:dregx, '', node);
          node[0] = :dregx_once if options =~ /o/
          node << o if o and o != 0
        end

        node
      end