Egy amatőr ötlet, amit gyorsan lehetne implementálni, és ha a minták közt van hasonlóság, gyorsítana:
1) A mintákból egyetlen regexpet kreálni, mely 10 karakteres és mindegyik pozíción felsorolja az összes karaktert, ami valamelyik mintában előfordult, vagy a "."-ot, ha valahol abban a pozícióban "." volt.
2) A nagy adattömböt ezzel az egy regexppel megszűrni.
3) Az előző szűrés eredményére ráengedni az összes mintát.
No, ez persze sokszor csak felesleges munka, pl. ha mindegyik pozíció olyan, hogy valamely mintában van ott ".". De ha a mintákban van valami szabályosság, akkor a 2. pont egy sokkal kisebb fájlt eredményez, amiben aztán gyorsan lehet egyesével keresni.
De nem gondoltam át, lehet, hogy ez az előszűrés az esetek többségében csak felesleges munka, mert alig szűr ki valamit.