to post messages and comments.

Вот значит хочу из
<div class="info">много текста и других тегов</div>выдрать "много текста и других тегов". Казалось бы все просто (вот как щас помню)
grep 'info">*</div>'но не прокатывает.
А вот
grep '">*</div>'выдает
<div class="clear"></div>Я погуглил и пока не понял почему :\

Всё-таки GNU Grep очень странный проект.
С одной стороны, вроде как там много действительно интересных идей реализовано, чтобы работало быстро.
А с другой, ну нельзя же так. Если считать, что это одна из важнейших программ в unix-like окружении, как в выпушенных стабильных версия могут появляться вот такие ошибки:
$ echo aa | grep -E 'a(b$|c$)'
aa

Кто-то скажет, мол, не надо сидеть на Arch. Не уверен. Это будет лишь означать, что у вас не работает что-то другое. Ведь нет же какой-то действительно стабильной ветки?

Всё больше склоняюсь к тому, что GNU Grep просто нельзя использовать, да и не использует его никто. UNIX-way остался в 80-х. Для пользовательского поиска файлов по содержимому используют специально предназначенные для этого системы; для чего-то другого — написанные профессионалами реализации регулярных выражений на всяких там Java.
grep и командный интерфейс сегодня это удел дрочеров и маргиналов :-(((

grep -w no longer mishandles a potential match adjacent to a letter that
takes up two or more bytes in a multibyte encoding.
Similarly, the patterns '\<', '\>', '\b', and '\B' no longer
mishandle word-boundary matches in multibyte locales.
[bug present since "the beginning"]

Неужели это починили, то что мне нужно, и теперь это будет работать с русскими словами???

$ time grep -c 192.168.240.18 access.log
49090

real 0m0.102s
user 0m0.064s
sys 0m0.039s
$ time grep -c '192\.168\.240\.18' access.log
49094

real 0m0.409s
user 0m0.362s
sys 0m0.044s
$ time grep -Fc 192.168.240.18 access.log
49109

real 0m0.593s
user 0m0.561s
sys 0m0.031s

Почему с фиксированными строками в несколько раз дольше?!?!

GNU grep 2.13
Багофиксы:
1. grep -i теперь правильно выводит многобайтовый символы, даже если большая и маленькая буква различной длины (например, турецкая «и-с-точкой»);
2. --include и --exclude снова можно совмещать.
"grep --include='.[ch]' --exclude='system.h' PATTERN " читает все *.[ch], кроме system.h (наверное, это удобно для всяких вимеров, которые не осилили ни нормальных языков, ни нормальных сред разработки)
Нововведения:
grep без опции -z по умолчанию считает разреженные файлы бинарными, если удается определить, что файл действительно разреженный.

Что касается grep's interpretation of range expression is now more consistent with
that of other tools в новой версии, то это относится к восьмибитным кодировкам.
Раньше dfa вызывал функцию strcoll, и происходило смешение больших и маленьких букв. Если же использование dfa было невозможным (ссылки назад в регвыре), то работало по-другому. Теперь эта путаница устранена.

Ура! Вышла новая версия GNU grep — замечательной программы для поиска строк в файле по регулярным выражениям — 2.8. Нашел на gnu.org
Улучшена обработка символов в диапазоне 0x80…0xff во многих локалях (напримерб printf '\xff\n'|grep "$(printf '[\xff]')" || echo FAIL), исправлена ошибка с прекращением работы при некоторых проблемах с памятью.
В Арче пока нет, слоупочат пока…

GNU grep 2.7
./configure --prefix=/usr --bindir=/bin --with-included-regex

$ echo ПРИВЕТ | LANG=C grep '[а-я]'
grep: Invalid collation character
$ echo ПРИВЕТ | LANG=ru_RU.UTF-8 grep '[а-я]'
ПРИВЕТ

GNU grep 2.5.3, Debian GNU/Linux Lenny

$ echo ПРИВЕТ | LANG=C grep '[а-я]'
ПРИВЕТ
$ echo ПРИВЕТ | LANG=en_US.UTF-8 grep '[а-я]'
$

GNU grep 2.6.3, Debian GNU/Linux Squeeze
$ echo ПРИВЕТ | LANG=en_US.UTF-8 grep '[а-я]'
ПРИВЕТ
$ echo ПРИВЕТ | LANG=ru_RU.UTF-8 grep '[а-я]'
ПРИВЕТ
$ echo ПРИВЕТ | LANG=C grep '[а-я]'
$

Продолжая #962287
Back-references не поддерживаются только при работѣ съ Extended POSIX regexes, съ BASIC — все работаетъ. Маны нужно читать внимательнѣе, тамъ написано не только про ‘dreadful botch’ , но и сказано, гдѣ этотъ ‘botch’ работаетъ, а гдѣ — нѣтъ.