Probably a change in the regular-expressions library of the server operating system -- due to an OS change or upgrade.
The hyphen plays two roles within character alternation [groups]. It can represent either a literal hyphen or a "range indicator" (as in "a-z"). The interpretation of the hyphen, if ambiguous, can vary among regular-expressions processing libraries. So, it's best to avoid ambiguity, and where it might exist, to escape the hyphen so as to disambiguate it:
If you wish to match hyphens in your pattern:
If you wish to match only letters and numbers: ^(portfolio/clients/[a-z0-9]+)/$