def parse_cpe(full_cpe):
    """
    This function extracts vendor, product and version from CPE in the full form
    cpe:2.3:[aoh]:*{10} = string 'cpe:2.3' is followed by a/o/h and ten groups.

    :param full_cpe: CPE match string in its full form
    :return: vendor, product, and version
    """
    if '\\:' in full_cpe:
        cpe_parts = full_cpe.split(":")
        vendor = cpe_parts[3]
        while vendor.endswith('\\') and len(cpe_parts) > 13:
            vendor += ":" + cpe_parts[4]
            cpe_parts.pop(4)
        product = cpe_parts[4]
        while product.endswith('\\') and len(cpe_parts) > 13:
            product += ":" + cpe_parts[5]
            cpe_parts.pop(5)
        version = cpe_parts[5]
        while product.endswith('\\') and len(cpe_parts) > 13:
            version += ":" + cpe_parts[6]
            cpe_parts.pop(6)
    else:
        cpe_parts = full_cpe.split(':')
        vendor = cpe_parts[3]
        product = cpe_parts[4]
        version = cpe_parts[5]
    return vendor, product, version