I'm curious; what data structure and algorithm are you using to achieve O(log n) routing?
The lower bound is linear in the length of the route if all routes participate in your regular expression and if you have it pre-compiled to, for example, a DFA or an LL parser ahead of time.