Wyrażenie regularne (([A-ZŁŻ][a-ząęóżźćńłś]{2,})(-[A-ZŁŻ][a-ząęóżźćńłś]{2,})?) opisuje ciąg zaczynający się od jednej wielkiej litery z zakresu [A-ZŁŻ], po której musi wystąpić co najmniej 2 razy mała litera z zakresu [a-ząęóżźćńłś] (o tym mówi kwantyfikator {2,}). To odpowiada typowej strukturze pojedynczego nazwiska lub nazwy zapisanej jednym wyrazem.
Następnie wzorzec dopuszcza (ale nie wymaga) drugi człon poprzedzony myślnikiem: fragment (-[A-ZŁŻ][a-ząęóżźćńłś]{2,})?. Znak ? oznacza, że cały ten fragment może wystąpić 0 lub 1 raz, czyli nazwisko może być jednoczłonowe albo dwuczłonowe połączone myślnikiem.
Kluczowe jest to, że we wzorcu nie ma spacji ani żadnej klasy białych znaków. W regex działa zasada: jeśli znak nie jest opisany we wzorcu, to nie jest akceptowany. Dlatego ciąg zawierający odstęp między wyrazami nie przejdzie walidacji.
- "Kasprowicza" pasuje: zaczyna się wielką literą, potem ma więcej niż dwie małe litery.
- "Kowalski" pasuje z tego samego powodu.
- "Nowakowska-Kowalska" pasuje, bo drugi człon po myślniku spełnia identyczne wymagania (wielka litera + co najmniej 2 małe).
- "Jelenia Góra" nie pasuje, ponieważ zawiera spację, której wzorzec nie dopuszcza (dopuszczony jest tylko ewentualny myślnik jako separator).
W praktyce, gdy trzeba akceptować dwuczłonowe nazwy ze spacją, wzorzec trzeba świadomie rozszerzyć (np. o spację lub klasę białych znaków), a następnie przetestować na przykładach pozytywnych i negatywnych, aby nie dopuścić niepożądanych formatów.