# File lib/uri_template/rfc6570.rb, line 479
  def extract_matchdata(matchdata, post_processing)
    bc = 1
    vars = []
    tokens.each{|part|
      next if part.literal?
      i = 0
      pa = part.arity
      while i < pa
        vars.push( *part.extract(i, matchdata[bc]) )
        bc += 1
        i += 1
      end
    }
    if post_processing.include? :convert_result
      if post_processing.include? :convert_values
        return Hash[ vars.map!{|k,v| [k,Utils.pair_array_to_hash(v)] } ]
      else
        return Hash[vars]
      end
    else
      if post_processing.include? :convert_values
        return vars.collect{|k,v| [k,Utils.pair_array_to_hash(v)] }
      else
        return vars
      end
    end
  end