# File lib/addressable/template.rb, line 486
    def variables
      @variables ||= (begin
        result = []

        expansions, expansion_regexp = parse_template_pattern(pattern)
        expansions.each do |expansion|
          if expansion =~ OPERATOR_EXPANSION
            _, _, variables, _ = parse_template_expansion(expansion)
            result.concat(variables)
          else
            result << expansion[VARIABLE_EXPANSION, 1]
          end
        end
        result.uniq
      end)
    end