Wyraenie regularne
^(.+?) ([^\s,]+)(,? (?:[JS]r\.?|III?|IV))?$
Opcje wyraenia regularnego: Ignorowanie wielkoci liter
Odmiany wyrae regularnych: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby


Tekst docelowy
$2, $1$3
Odmiany tekstu docelowego: .NET, Java, JavaScript, Perl, PHP


\2, \1\3
Odmiany tekstu docelowego: Python, Ruby


JavaScript
function formatName (name) {
    return name.replace(/^(.+?) ([^\s,]+)(,? (?:[JS]r\.?|III?|IV))?$/i, "$2, $1$3");
}
