as demond stated in that other thread, bind to raw and return 1 (ignore) on whatever you want.
an example of ignoring any banmask which matches its own (with flawed ban matching . didnt test it much so its probably gonna break some other stuff too ):
bind RAW - MODE check:ban
proc check:ban { f k args } {
set pm "" ; set mt 0
set a [lindex $args 0]
set m [join [lindex [split $a] 1]]
set n [join [lrange [split $a] 2 end]]
for {set i 0} {$i<[string length $m]} {incr i} {
set c [string index $m $i]
if {$c == "+"||$c == "-"} { incr mt ; set pm $c ; continue }
if {![string match *$c* bovhlek]} {incr mt}
set tm "$pm$c" ; set v [join [lindex [split $n] [expr $i - $mt]]]
if {$tm=="+b"} {
if [string match -nocase $v $::botname] { return 1 }
}
}
return
}