# File lib/uri_template/rfc6570/expression.rb, line 169
      def generate_hash_extractor(max_length)
        source = regex_builder
        source.push('\\A')
        source.escaped_separator
        source.capture do
          source.character_class('+').reluctant
        end
        source.group do
          source.escaped_pair_connector
          source.capture do
            source.character_class(max_length,0).reluctant
          end
        end.length('?')
        source.lookahead do
          source.push '\\z'
          source.push '|'
          source.escaped_separator
          source.push '[^'
            source.escaped_separator
          source.push ']'
        end
        return Regexp.new( source.join , Utils::KCODE_UTF8)
      end