import re


def is_icecube_name(name):
    """
    Checks if a string adheres to the IceCube naming scheme
    (e.g. IC201021B)
    """
    return re.match(
        "^IC((\d{2}((0[13578]|1[02])(0[1-9]|[12]\d|3[01])|(0[13456789]|1[012])(0[1-9]|[12]\d|30)|02(0[1-9]|1\d|2[0-8])))|([02468][048]|[13579][26])0229)[a-zA-Z]$",
        name,
    )