That regex detects things like "eeieiieeeiA __ 1 2 3__" as a proper noun. I'm confused by the decision to accept any number of leading [ei] and any number of trailing (?:\s+[_\d]+).
Instead of
[ie]*-?[A-Z]+
it looks like they wanted [ie]?-?[A-Z]