playerips(new2).mrc

You now can use both the ? and * wildcards in "!ip <IP>" scans. I fixed some other things as well.
While "*" will match 1-3 digits, "?" will match exactly one digit and "???" exactly 3 digits. ?4* thus will match 14 and 347, but won't match 41 or 4.
Known limitation: I extended the "user wants an scan for IP" regex just a bit (quickly) - therefore, you have to provide one, two or three chars per IP 'octet' (be it digits or wildcards), to make a valid <IP> input. You cannot use e.g. *44*, but have to scan for both 44* and *44 separately - I hope that's no big prob smile
I did my best to keep the new outputs uniform - all matches remain sorted by "age". The output of a "verbose wildcard scan for IPs" with many matches may be hard to read, none the less...

request: !ip <Name>
reply: IPs used by <Name>: IP1 - IP2 - IP3 (...)
request: !ip <Name> full
reply: IPs used by <Name>: IP1 (date, time) - IP2 (date, time) - IP3 (date, time) (...)
request: !ip <IP>
reply: Names used on IP <IP>: Name1 - Name2 - Name3 (...)
request: !ip <IP> full
reply: Names used on IP <IP>: Name1 (date, time) - Name2 (date, time) - Name3 (date, time) (...)
request: !ip <wildmask>
reply: Names used on IPrange <wildmask>: Name1 (2x) - Name2 - Name3 (6x) - Name4 (...)
request: !ip <wildmask> full
reply: Names used on IPrange <wildmask>: Name1: IPmatch (date, time) - Name2: IPmatch (date, time) (...)

Regarding the aforementioned risk ((excess) flood) of "!ip *.*.*.*", wilcard scans will return the search result only if there are <= 20 matches. If there are more matches, a message "Try again with a more specific range" is given. (You can change this value at line 95)