Yup, you're right. I was assuming that : wouldn't be allowed as part of a hostname but that depends on the server, IPv6, etc. So looking for the first : will not be enough. In order to check for a type prefix, mIRC will have to check that the prefix character specified in the EXTBAN is at the start of the address and only then look for the : character.
Update: Drats. Looking at
this document on the UnrealIRCd website, it says that you can stack extended bans (see bottom of page). So looking for the first : will not be enough. An IRC client will have to scan through all stacked type prefixes ~q:~c: to make sure it has found the whole of the case-sensitive section of the address. This is assuming all servers implement this the same way.