一般掲示板を眺めていて思ったのですが、
strcut RegexInfo{
szKeyword[100];
};
RegexInfo[100];
みたいになっているのを、
どうせ実行時に正規表現コンパイル時にコピーするわけだから、
szKeyword[100*100]みたいにしておいて、
複数ファイル名リストや補完候補みたいに
NUL区切り文字列にしてはどうでしょうか。
szKeyword[] = "const\0volatile\0";
そうすれば、99文字*100個にも999文字*10個にもできるようになります。
最大値チェックが面倒・わかりにくいという点に目をつぶればうまくいくように思います。