Demiurg
>хорошо, поиск большой подстроки в большом объеме данных. Что будет быстрее ?
Возможно, я криво мерял все это дело, но при поиске в 10к строки порядка 500 символов реги заметно опережают поиск подстроки с приведением регистра. Как ни прискорбно мне это признавать.
По-моему, причина в том, что strtolower мы заставляем проверять _весь_ текст, потом до встречи совпадения идем strpos'ом (или до конца - неважно). В то время как РВ необходимые преобразования делают по ходу. В определенный момент запаса алгоритма strpos оказывается недостаточно. Опять же, тут много спорных моментов.
Например, как именно работают реги. Какой алгоритм использует strpos. Как проводить тест. Ведь я брал статический текст в котором в первой сотне символов встречается искомое вхождение.
Против регов вижу пока только одно - задачи на обработку большой массы встречаються редко.
Кстати, Demiurg, я когда-то рассматривал алгоритмы поиска, и, если мне не изменяет память, самый быстрый из широко известных обгонял посимвольное сравнение раз в 12. С учетом тормозной strtolower можно найти предел инфы, где реги будут проигрывать.
И еще. Неужели реги так вот посимвольно сравнивают? Что-то слабо вериться...