set_substitution crashes because self._subs does not exist. The variable is called self._sub. Also, the regex needs to be precompiled here, and if None is passed, the variable should not be set after you delete it.