Great question, and the answer is yes. Here is the rundown on regular expressions with routes:
|:word|
a short hand to allow easy construction of routes which use 'words' this includes a-z, A-Z, 0-9, _ and -
<:expression(regexp):>
Allows full control of the expression used in the capture. for example
<:rev([\s\w]*):>
would be enough to capture your example i think.
There might be room for improvement but in general it's worked well, though admittedly I tend to use shorter urls. In some cases it may me easier to try to cram less into the url and allow the creation of more routers which use filters to seperate, for example the controller parameter in your example. This may not be possible though based on your requirements.
One thing I've added locally which stills needs a little work is normalization for the form and link routers so that form values are included in the event.param() map and for the link router event.param() will include the url ? parameters. for example
foo/bar/?abc=123&def=456
so if you had a link router like foo/|:id|
you would get an event.params() which returns
{
id: 'bar',
abc: '123',
def: '456'
}
I'll get that pushed out to trunk tonight so you can play with it as well. If you have some ideas of how you might like to simply your particular issue, let me know and we can see if we can find a good solution in that direction.
Thatcher
--
Christopher Thatcher