import re


def word_counter(s, ignore_case=True):
    """
    Returns a tuple made up of:
     - A dictionary of all the words from `s` and how many times they appear
     - A tuple of the number of unique words and the total number of words
    """
    if ignore_case:
        clean_s = [x.lower() for x in re.split(r"\s|\.|,", s) if x]
    else:
        clean_s = [x for x in re.split(r"\s|\.|,", s) if x]
    all_words = [word for word in clean_s]
    words_and_counts = {word: 0 for word in set(all_words)}

    for word in all_words:
        words_and_counts[word] += 1

    return words_and_counts, (len(set(all_words)), len(all_words))