Add regex search support.  Does not prune servers
Refactor the typing subsystem to use virt funcs.

The code is more compact, more robust, and more maintainable.