^([A-Z]{3,}(?:[A-Z\s]*[A-Z]{3})?)$
Warum ?:
{:.language-regex}
?Leistet
^[A-Z]{3,}([A-Z\s]*[A-Z]{3})?$
nicht dasselbe?
Prinzipiell ja - durch ein Vorangestelltes ?: wird der Inhalt der Klammer nicht in das Ergebnis aufgenommen - spielt also keine Rolle, ich weiß nichtmal ob das performancemäßig einen signifikanten Unterschied bedeutet.