\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).