I've never used the %pos command before. Can you give me a quick rundown of it? Or rather, just confirm if my understanding is correct.. Usually it's what position is *blah* in @blah. So, using it in the way you did just checks to see if *blah* is anywhere in @blah?

If so, that's genius. Another question:

Why do you have ({dagger|sword|mace|axe}) inside brackets and parenthesis?

I've never used the %pos command before. Can you give me a quick rundown of it? Or rather, just confirm if my understanding is correct.. Usually it's what position is *blah* in @blah. So, using it in the way you did just checks to see if *blah* is anywhere in @blah? "

In my initial post when I first suggested it, I included a link to the documentation on %pos. But yes, it works exactly like what you were describing. It's just called %pos, not %contains.

"Why do you have ({dagger|sword|mace|axe}) inside brackets and parenthesis?"

The braces denote a list, so that trigger pattern will match any of those words. The parentheses create a capture group, so the match can then be referenced as %1, %2, etc (same as your "(*)").