'Parse a full epubcfi of the form epubcfi(path [ , path , path ])'

def parse_epubcfi(self, raw):

    null = ({}, {}, {}, raw)
    if (not raw.startswith(u'epubcfi(')):
        return null
    raw = raw[len(u'epubcfi('):]
    (parent_cfi, raw) = self.parse_path(raw)
    if (not parent_cfi):
        return null
    (start_cfi, end_cfi) = ({}, {})
    if raw.startswith(u','):
        (start_cfi, raw) = self.parse_path(raw[1:])
        if raw.startswith(u','):
            (end_cfi, raw) = self.parse_path(raw[1:])
        if ((not start_cfi) or (not end_cfi)):
            return null
    if raw.startswith(u')'):
        raw = raw[1:]
    else:
        return null
    return (parent_cfi, start_cfi, end_cfi, raw)
