Основные отличия между POSIX и ERE регулярными выражениями в PostgreSQL заключаются в следующем:
- POSIX регулярные выражения предоставляют более мощные средства поиска по шаблонам, чем операторы LIKE и SIMILAR TO. 12 В отличие от шаблонов LIKE, регулярное выражение может совпадать с любой частью строки, если только оно не привязано явно к началу и/или концу строки. 1
- ERE регулярные выражения используют некоторые расширения, не предусмотренные стандартом POSIX, но широко используемые вследствие их доступности в некоторых языках программирования, например в Perl и Tcl. 1 Регулярные выражения, использующие эти несовместимые с POSIX расширения, называются усовершенствованными RE или ARE. 1 ARE практически представляют собой надмножество ERE, тогда как BRE отличаются некоторой несовместимостью в записи (помимо того, что они гораздо более ограничены). 1
Изначально PostgreSQL предполагает, что регулярное выражение следует правилам ARE. 1 Однако можно переключиться на более ограниченные правила ERE или BRE, добавив в шаблон RE встроенный параметр. 1 Это может быть полезно для совместимости с приложениями, ожидающими от СУБД строгого следования правилам POSIX 1003.2. 1