Try this
&sRegex = "/(ps[cp])/([^\/_]*)?(?:_newwin)?/([^\/]*)?/([^\/]*)?/([csehtqwnf]{1})/";
This adds an optional _newwin that is not inclueded in the group count.
If you have to support underscores in the second match we need to rely on greediness…