Actually jonesy44, we may want to make sure the $chantypes is entered once to be recognized, or else it can get trigger in: !join ########### or #
/^[`.!@]((join|part) #[^#].*)$/Si
This will make sure it triggers upon #channame here with one # not being followed by another #.
Although I doubt people will make a channel name with multiple #'s... but that could well be happening...