def does_match(word, possible_replacement):
    """
    is possible_replacement able to replace incomplete_word?
    """
    # does the length match?
    if len(word) != len(possible_replacement):
        return False
    # check every character
    for char_word, char_replacement in zip(word, possible_replacement):
        # when the current char in the replacement word is not unknown (isn't "_"),
        # it has to match with the current char of the word otherwise there is no chance of replaceability
        if char_word != "_" and char_word.upper() != char_replacement.upper():
            return False
    return True