La extensión GNU \+ en expresiones regulares básicas: soporte irregular entre sistemas

Fuentes: Platform Support for GNU Extensions to Basic Regular Expressions

En las expresiones regulares básicas (BRE) POSIX, el estándar no define el comportamiento de \?, + y |: cada implementación decide si los trata como caracteres literales o como los operadores equivalentes de las expresiones regulares extendidas (ERE, ?, +, |). El estándar deja abierta esa puerta y advierte de que una versión futura podría unificar el criterio.

Sin embargo, muchas plataformas Unix y Unix-like admiten + como sinónimo de + gracias a una extensión introducida por glibc, presente en su código desde 1995. El artículo analiza el soporte real de esta extensión en distintos sistemas operativos. FreeBSD la incorporó en agosto de 2020 en su biblioteca libregex, gobernada por la bandera gnuext, que se activa automáticamente cuando grep opera en modo básico. NetBSD la adoptó en febrero de 2021 al sincronizar su código con FreeBSD. macOS, aunque utiliza una bifurcación de la biblioteca TRE de 2009, añadió el reconocimiento de + en octubre de 2021. Chimera Linux y otras distribuciones basadas en musl también la soportan, al igual que Redox OS, mediante la crate posix-regex, desde 2018, y Haiku, que importa gnuregex desde 2014.

Por el contrario, OpenBSD, Illumos y SerenityOS no implementan la extensión. En conjunto, se trata de un comportamiento no estandarizado pero con adopción amplia, por lo que el autor recomienda usar explícitamente el modo extendido con -E (o equivalente) cuando se necesite la funcionalidad de + o ?.