Da, koliko se sjećam ono što oni žele je da za zagrade napravite potprogram koji prati ugnježdenost brojačem otvorenih i zatvorenih zagrada (tako se to i radi s obzirom na to da puno regex pogona ne podržava backtracking a samim time ne podržavaju ni kontekstno ovisne jezike, što su jezici s tim zagradama).
Slično možete napraviti i za razmake, samo je možda bolje u prvom passu normalizirati n uzastopnih razmaka u jedan, jer vam pozicija u retku ne treba, a onda možete lako splittati po jednom razmaku ili novoj liniji. Za nove linije, vjerojatno bi dobro bilo u istom prvom passu normalizirati \r\n
u \n
.