Why not just convert numbers like 1 to i or l then check with a manually created bad word list? Would regex be really much faster than checking it against a 1000 or more bad word list? Also bad word list can easily get updated by moderators as well, I really can’t understand the logic behind using so much regex.
But note: for the most part this isn't using regexs, and to the extent it does, it seems largely intended to make the maintainers' lives easier by avoiding having to represent (and maintain) all the permutations they are trying to match for.
What's sad though is that they're doing many, many passes through the pattern matcher, rather than just building a single big DFA from the whole list of patterns they want to match, which gets traversed in one pass.