def get_values(item):
    """Extract value from regex hit."""
    fracs = r'|'.join(r.UNI_FRAC)

    value = item.group(2)
    value = re.sub(ur'(?<=\d)(%s)10' % r.MULTIPLIERS, 'e', value)
    value = re.sub(fracs, callback, value, re.IGNORECASE)
    value = re.sub(' +', ' ', value)

    range_separator = re.findall(ur'\d+ ?(-|and|(?:- ?)?to) ?\d', value)
    uncer_separator = re.findall(ur'\d+ ?(\+/-|±) ?\d', value)
    fract_separator = re.findall(ur'\d+/\d+', value)

    uncertainty = None
    if range_separator:
        values = value.split(range_separator[0])
        values = [float(re.sub(r'-$', '', i)) for i in values]
    elif uncer_separator:
        values = [float(i) for i in value.split(uncer_separator[0])]
        uncertainty = values[1]
        values = [values[0]]
    elif fract_separator:
        values = value.split()
        if len(values) > 1:
            values = [float(values[0]) + float(Fraction(values[1]))]
        else:
            values = [float(Fraction(values[0]))]
    else:
        values = [float(re.sub(r'-$', '', value))]

    logging.debug(u'\tUncertainty: %s', uncertainty)
    logging.debug(u'\tValues: %s', values)

    return uncertainty, values
Extract value from regex hit.