開発環境
Xcode 5.0.2
iOS 7
iPod touch 5, iOSシミュレータ
ARCオン

以下のコードで NSRegularExpression を使って正規表現を行っているのですが、
EXC_BAD_ACCESS (code=2, address=0×8) というエラーが出てしまいアプリが落ちてしまうことがあります。
落ちる所は -firstMatchInString:options:range: です。
実機、iOSシミュレータとも同じ状態です。

調べてみた所、EXC_BAD_ACCESS はオブジェクトが初期化されていなかったり、既に解放されているときに起きるらしいのですが、
以下のコードの targetString や regexPattern には有効な文字列が入っている(nil ではない)ことを確認しています。

NSString *targetString = @”…”; // 正規表現の対象となる文字列
NSArray *regexPatterns = @[@"...", @"...", ...]; // 正規表現のパターンを入れた配列
NSRange range = NSMakeRange(0, [targetString length]);

for (NSString *regexPattern in regexPatterns) {
@autoreleasepool {
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:regexPattern
options:NSRegularExpressionCaseInsensitive
error:&error];
if (error != nil) {
NSLog(@”Regular Expression Error: %@”, error);
} else {
NSTextCheckingResult *match = [regex firstMatchInString:targetString
options:NSMatchingReportProgress
range:range]; // ここで落ちることがある

if (match.numberOfRanges) {

// 以下いろいろな処理

}
}
}
}

先ほど「落ちる」と書きましたがいつも落ちる訳ではなく、ほとんどの場合は落ちないのですが、
ある特定の targetString と regexPattern の組み合わせのときにだけ落ちます。
しかし、targetString をある程度短くした場合は落ちなくなることがあります。

曖昧な書き方で申し訳ないのですが、「このときに落ちる」という様なはっきりとした条件が分からないでいます。
ただし、ある落ちる条件のときは必ず落ちます。

また、@autoreleasepool は、正規表現使用時のメモリの増加を抑えるために入れています。
http://blog.kvnd.me/post/10186864667/regular-expressions-in-ios
ただ、@autoreleasepool のことはあまりよく分かっていません。

【これまでにしたこと】
・targetString と regexPattern の文字列の確認
breakpoint を設定して値を見て nil でないことを確認。

・落ちる regexPattern を Array から除く
同じ(落ちる) targetString でも問題なく動作する。

・targetString をある程度短くする
短くすることでエラーが出なくなるが、targetString によってその長さはまちまち。
エラーになる文字にも共通点無し。

・NSZombieEnabled の設定
http://d.hatena.ne.jp/Kazzz/20120109/p1
EXC_BAD_ACCESS には NSZombie だということで上記サイトの通り Edit Scheme… から NSZombieEnabled 等を設定してみたのですが、
コンソールには何も表示されませんでした。

・@try 〜 @catch 内で実行
exception には何も表示されず。

・@autoreleasepool を外す
効果無し。

どのようなことでも構わないので何か気付かれたことが有りましたら教えて頂けないでしょうか。
どうぞよろしくお願い致します。