'Extract the keyword value from the card image.'

def _parse_value(self):

    if ((self.keyword.upper() in self._commentary_keywords) or self._invalid):
        return self._image[KEYWORD_LENGTH:].rstrip()
    if self._check_if_rvkc(self._image):
        return self._value
    if (len(self._image) > self.length):
        values = []
        for card in self._itersubcards():
            value = card.value.rstrip().replace("''", "'")
            if (value and (value[(-1)] == '&')):
                value = value[:(-1)]
            values.append(value)
        value = ''.join(values)
        self._valuestring = value
        return value
    m = self._value_NFSC_RE.match(self._split()[1])
    if (m is None):
        raise VerifyError("Unparsable    card    ({}),    fix    it    first    with    .verify('fix').".format(self.keyword))
    if (m.group('bool') is not None):
        value = (m.group('bool') == 'T')
    elif (m.group('strg') is not None):
        value = re.sub("''", "'", m.group('strg'))
    elif (m.group('numr') is not None):
        numr = self._number_NFSC_RE.match(m.group('numr'))
        digt = translate(numr.group('digt'), FIX_FP_TABLE2, '    ')
        if (numr.group('sign') is None):
            sign = ''
        else:
            sign = numr.group('sign')
        value = _str_to_num((sign + digt))
    elif (m.group('cplx') is not None):
        real = self._number_NFSC_RE.match(m.group('real'))
        rdigt = translate(real.group('digt'), FIX_FP_TABLE2, '    ')
        if (real.group('sign') is None):
            rsign = ''
        else:
            rsign = real.group('sign')
        value = _str_to_num((rsign + rdigt))
        imag = self._number_NFSC_RE.match(m.group('imag'))
        idigt = translate(imag.group('digt'), FIX_FP_TABLE2, '    ')
        if (imag.group('sign') is None):
            isign = ''
        else:
            isign = imag.group('sign')
        value += (_str_to_num((isign + idigt)) * 1j)
    else:
        value = UNDEFINED
    if (not self._valuestring):
        self._valuestring = m.group('valu')
    return value
