There's no need for an extra grouping bracket in your regex:
/(h(ey|ello|i)|wadd|s(up))/Si
And you might want to reorganize your hash table to store the nicks with $addtok() to its data instead of the item. Then reference them with $istok(). Your current use of hash table will make a lot of item slots per person when greeted. You only need one. Lastly, hsave and hload may be needed as well.