your logic doesn't make sense, if you didn't want 'hello' to be seen as 'hell' you would have used ( |$) the same way you used (^| ), \b is still better to use here to match words boundaries, but use it on both side, that's what jaytea meant.
However, about the list including wildcards, \Q\E handles them.