when you type in /ban ~r:*something* or anything similar to it, it'll append !*@* to the end, e.g.
in console: MODE #justtesting +b ~r:*something*!*@*
in channel: [04:59am] You set a ban on ~r:*something*!*@*.
On the other hand, if you type in /mode #justtesting +b ~r:*something* into a window
in console: MODE #justtesting +b ~r:*something*
in channel: [05:00am] You set a ban on ~r:*something*!*@*.
+b ~r:*something* is most definitely not the same as +b ~r*something*!*@* (as it is not a ban on *something*!@* as colloquy is making it out to be, but rather a ban on anyone whose realname/GECOS matches *something*, as such !*@* does not belong there) - in the case of the former (using /ban), it would screw up the ban (which shows up as the latter hostmask in the banlist), and in the latter (using /mode) it is not representing the ban correctly (there IS no ban on the latter hostmask but it is displayed as though it is).
the type of ban is irrelevant to most of the above, which seems somewhat intentional, as colloquy seems to append !*@* to pretty much any ban.