def wildcard_string_match(val,pattern,wildcard='?',wildcard_exclude=''):
    """Generate a TRUE / FALSE for matching the given value against a pattern. Enables wildcard searching & excludable characters from wildcard.

    Args:
        val (string): Value to check if matches.
        pattern (string): Pattern to check the val against.
        wildcard (str, optional): Wildcard character used in pattern. Defaults to '?'.
        wildcard_exclude (str, optional): Characters to exclude from wildcard. Defaults to ''.

    Returns:
        bool : TRUE == match, FALSE == no match
    """
    
    if len(val) == 0 or len(pattern) == 0:
        return True
    
    if val[0] in wildcard_exclude:
        return False
    elif pattern[0] == wildcard or pattern[0] == val[0]:
        return wildcard_string_match(val[1:],pattern[1:],wildcard,wildcard_exclude)
    else:
        return False