-> Don't use $1 in match text, it will not have a value, use * to match anything, ? to match a single character and & to match one word.
-> You forgot the : after the channel name
-> The whole line get's put in $1- when the event triggers, each word becomes $n with n the n'th word. This means that for "!rem joe" $1 == !rem and $2 == joe
-> With the correct match text (!rem followed by a word) you can be sure $2 is filled, so you don't really need the $$2. It's not wrong ofcourse
on 6:text:!rem &:#help: { ruser $$2 }