def partition_atomic_label(label)
      # singularize the label if it contains more than two letters and ends in s but not ss. this condition
      # avoids incorrect singularization of, e.g., ms (millisecond) and gauss.
      label = label.singularize if label =~ /[[:alnum:]][^s]s$/
      scalar, axis = parse_atomic_label(label) { |label| match_axis_label_suffix(label) }
      return scalar, axis unless scalar.nil? and axis.nil?
      parse_atomic_label(label) { |label| match_axis_abbreviation_suffix(label) }
    end
def partition_atomic_label(label)
      # singularize the label if it contains more than two letters and ends in s but not ss. this condition
      # avoids incorrect singularization of, e.g., ms (millisecond) and gauss.
      label = label.singularize if label =~ /[[:alnum:]][^s]s$/
      scalar, axis = parse_atomic_label(label) { |label| match_axis_label_suffix(label) }
      return scalar, axis unless scalar.nil? and axis.nil?
      parse_atomic_label(label) { |label| match_axis_abbreviation_suffix(label) }
    end
Returns the +[scale, axis]+ pair parsed from the label.