Здравствуйте, eao197, Вы писали:
E>С тем же успехом можно использовать и PCRE. В режиме Utf-8 сравнение без учета регистра выполняется на ура. Я так PCRE в одном из проектов использую -- с помощью libiconv преобразовываю текст из разных кодировок в utf8, а затем пропускаю через PRCE.
У UTF-8 есть проблемы с регулярными выражениями. Если особая поддержка UTF-8 отсутствует, то выражения вроде «пр[ио]бежала?» будут работать очень странно, потому что парсер воспримет данные буквально — как "пр[\xD0\xB8\xD0\xBE]бежал\xD0\xB0?" — и будет действовать побайтно. Так что с этим следует быть осторожным. Тот же boost::make_u32regex(char const *) выполняет перекодирование из UTF-8, а другие могут этого и не делать.
E>Кстати, начиная, по-моему, с версии 7.0 в состав PCRE входит хороший С++ wrapper для PCRE, написанный в Google (см. заголовочный файл pcrecpp.h). С его помощью работать с PCRE очень просто и удобно.
Я потому советую Boost.Regex, что они простые и что они будут включены в C++09.