Limite de palavras Javascript Regex com caracteres opcionais que não são palavras

Estou procurando encontrar uma correspondência de palavra-chave em uma string. Estou tentando usar o limite de palavras, mas esse pode não ser o melhor caso para essa solução. A palavra-chave pode ser qualquer palavra e pode ser precedida por um caractere que não seja da palavra. A string pode ser qualquer string e pode incluir todas as três palavras na matriz, mas devo corresponder apenas à palavra-chave:

['hello', '#hello', '@hello'];

Aqui está o meu código, que inclui uma tentativa encontrada empostar:

let userStr = 'why hello there, or should I say #hello there?';

let keyword = '#hello';

let re = new RegExp(`/(#\b${userStr})\b/`);

re.exec(keyword);
Isso seria ótimo se a string sempre começasse com #, mas não.Então eu tentei isso/(#?\b${userStr})\b/, mas se a sequência começar com#, tenta combinar##hello.omatchThis str pode ser qualquer um dos 3 exemplos na matriz, e o userStr pode conter várias variações domatchThis mas apenas um será exato

questionAnswers(2)

yourAnswerToTheQuestion