Разделители /
сбивают вас с толку.Кроме того, вы должны по крайней мере использовать ленивые квантификаторы.Попробуйте это:
NSString *regexString = @"(?i)<img.+?src=['\"]([^'\"]+)['\"].*?>";
Это прерывается, когда имена файлов содержат кавычки, кстати.Может ли это быть проблемой для вас?
Регулярное выражение, которое немного безопаснее (и хорошо обрабатывает кавычки), будет
NSString *regexString = @"(?i)<img[^<>]+?src=(['\"])((?:(?!\\1).)+)\\1[^<>]*>";
Однако теперь имя файла совпадений будет в группе захвата 2, а не 1, поэтому вам нужно изменить любой код, который использует имя файла после совпадения.