Could certainly be done and I thought about a slightly different approach to what you propsed in trac. self.schemes would have the default scheme list and be used directly in the regex. However, this way the regex would need to be a template and be expanded / compiled inside __init__(). But with sub-classing in mind and the user potentially not adding a derived constructor, the code would have to be extra defensive, e.g. not raising an exception should the template expansion or compilation fail...