Wenn man sich lange damit herum schlägt bekommt man auch eine Lösung ;-)
$ egrep '(\[([A-Za-z]+)\]){3,}' regex.txt
..liefert hier im Beispiel alle Zeilen mit mindestens drei Klammerpaaren (ohne leere Klammerpaare). Das ganze Problem ist hier die Gruppierung mit den Klammern und das Entwerten durch den Backslash der eckigen Klammern [], da dies Sonderzeichen für egrep sind.
Man sucht nach einer eckigen Klammer --> (\[
...danach die Zeichenklasse der Groß- und Kleinbuchstaben (A-Z und a-z), die innerhalb der eckigen Klammern stehen muss --> [A-Za-z]
...die Zeichenklasse muss mindestens einmal vorkommen --> +
...abschließend muss die schließende eckige Klammer angegeben werden (entwertet) --> \])
...der ganze geklammerten Ausruck (in runden Klammern) muss mindestens 3mal (in geschweiften Klammer einzutragen) oder mehrmals vorkommen --> {3,}
Das war "hart" erkämpft