For the most part we do, the problem is regex out each of the individual names. Each name would equal one loop in my conditional checking, whereas:
Code:
^[GJKLVXZ]([aeio][bnrsk])+(n|tik)?[\\d]{2,}
Catches the vast majority of them in one iteration. My current spawnlog file is over 18MB of pure text (264,601 lines of spawns). The output of my script reduces that to just over 9MB of text (112,650 Lines).
So, 10 names/spell, casters get one every 4 or 5 levels (up to 49), then a pet a level afterwards for mages at least. So even just doing the sub 49 would result in 11 pet spells, or 110 names if your estimate is correct. So, one loop vs 110 per line of my spawnfile. Doesn't sound very efficient to me. Same thing if there are 40 names total used over and over again since the pets do have a number tagged onto the end of their name (e.g. Kebartik00). There could be a dozen Kebartik's in the zone and still be unique names, though I don't think I've ever been in a zone with enough pet summoners to cause that to happen.