It looks like it's just an issue of two different behaviors. Regex Hero counts all matches even if the match length is 0, whereas the Regex route constraint must do something different.
There are examples of this to be found with ASP.NET validation as well. For example, I recently learned that the RegularExpressionAttribute in MVC DataAnnotations will check to make sure that the string length is equal to the match length ( http://blog.regexhero.net/2012/09/asp... ). It could be that the routing constraints use the same behavior.