Якоря и границы
Некоторые символы в RE sed вообще не означают никаких символов, и даже количества символов. Во первых это якоря - их 2 шт:
- ^ означает начало строки.
$sed -rn '/^</p' test.html"
Распечатает все строки которые начинаются на <. - $ конец строки.
например '/^$/' подходит только к пустой строке.
Кроме того иногда используются границы слов (\b). Например шаблон /err\b/ найдёт "err! ", "cerr <<", но не найдёт "error". Ещё реже используется отрицание, оно нужно если нам нужна только часть слова, к примеру /err\B/ найдёт error, errors, однако не сможет найти просто err.
Есть ещё левая и правая граница слова \<, \>, эти символы надо экранировать даже в ERE.