import re


def regex_token_replace(sentence: str, token: str, replacement: str) -> str:
    """
    replace all occurrences of a target token with its replacement
    :param sentence: input sentence to be modified
    :param token: target token to be replaced
    :param replacement: replacement word for the target token
    :return: sentence with the all occurrences of the target token substituted by its replacement
    """
    replace_map = [
        [token, replacement],
        [token.capitalize(), replacement.capitalize()],
        [token.upper(), replacement.upper()],
    ]

    for j in range(len(replace_map)):
        pattern = re.compile(
            r"\b{}\b".format(replace_map[j][0])
        )  # \b indicates a word boundary in regex
        sentence = re.sub(pattern, replace_map[j][1], sentence)

    return sentence