# File lib/rack/mount/strexp.rb, line 25
      def compile(str, requirements = {}, separators = [], anchor = true)
        return Regexp.compile(str) if str.is_a?(Regexp)

        requirements = requirements ? requirements.dup : {}
        normalize_requirements!(requirements, separators)

        parser = StrexpParser.new
        parser.anchor = anchor
        parser.requirements = requirements

        begin
          re = parser.scan_str(str)
        rescue Racc::ParseError => e
          raise RegexpError, e.message
        end

        Regexp.compile(re)
      end