Предположим, что в ваших словарных ключах есть только строчные или только прописные слова, вы можете сделать что-то вроде этого:
import re
dict = {'KEYWORD': "replacement_keyword", 'EXAMPLE': 'b', 'EXAMPLE2: 2': 'c'}
string=input("Please enter your string")
pattern = re.compile(r'(?<!\w)(' + '|'.join(re.escape(key) for key in sorted(dict.keys(), key=len, reverse=True)) + r')(?!\w)', re.IGNORECASE)
result = pattern.sub(lambda x: dict[str.upper(x.group())], string)
print(result)
Используя str.upper или str.ниже в случае, если ваши ключи строчные, вы соответствуете вашим ключам.
Выходные данные:
Please enter your string: Keyword KEYWORD keyWord
replacement_keyword replacement_keyword replacement_keyword
Надеюсь, это решит, чего вы хотите достичь, в противном случае, пожалуйста, предоставьтебольше контекста.