Regex don’t do transformations? All they can do is match strings.
John Smith > Smith, John Anna Peterson > Peterson, Anna
I can write:
(.) (.)
And replace with:
\2, \1
Not sure if that’s part of some “official” regex spec but it works more or less everywhere.
(Of course if it was an actual list of names I’d have to be a lot more intelligent with double names etc.)
Regular expression libraries then often can use these boundaries, for the whole match and for groups, for transform the string (e.g. replacing what was matched by a group with some other content).