in reply to Regex lazy behaviour

\s*? matches zero spaces, then the regex engine tries to match (road)?. It succeeds with the "zero" option that the "zero-or-more" questionmark offers. No need to backtrack.

If you want road to get captured anyway, you can make \s* eager and (road)? still optional (and eager).