fnmatch ¶POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fnmatch.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-fnmatch-3.html
Documentation:
Gnulib module: fnmatch or fnmatch-gnu
Portability problems fixed by either Gnulib module fnmatch or fnmatch-gnu:
"?" pattern character fails to match characters outside the
single-byte range on some platforms:
NetBSD 10.0,
Android 13.
"?" pattern character fails to match characters outside the
Unicode BMP on some platforms:
Solaris 10, Cygwin 3.4.6,
MSVC,
32-bit AIX.
[!a-z]) are not
supported on some platforms:
Solaris 11.4.
[:alnum:]) inside
bracket expressions are not supported on some platforms:
FreeBSD 13.2,
NetBSD 10.0, Solaris 11 OpenIndiana, Cygwin 3.4.6.
[:alnum:]) inside
bracket expressions fail to match characters outside the single-byte
range on some platforms:
Android 13.
[:cntrl:] matches the empty string
on some platforms:
Solaris 11.4.
'[' on some platforms:
glibc 2.12,
macOS 12.5,
NetBSD 10.0.
Portability problems fixed by Gnulib module fnmatch-gnu:
FNM_LEADING_DIR and
FNM_CASEFOLD on some platforms:
AIX 7.2, HP-UX 11.31, Solaris 10.
FNM_CASEFOLD does not work in many situations on some platforms:
NetBSD 10.0.
FNM_CASEFOLD does not work for multibyte characters
consisting of more than one byte on some platforms:
Android 13.
FNM_EXTMATCH
on all non-glibc platforms:
musl libc, macOS 12.5, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2, Minix 3.3, AIX 7.2, HP-UX 11.31, Solaris 11.4, Cygwin 3.4.6, Android 13.
FNM_FILE_NAME as an
alias of FNM_PATHNAME on some platforms:
NetBSD 10.0, AIX 7.2, HP-UX 11.31, Solaris 10.
Portability problems not fixed by Gnulib:
Note: Gnulib’s replacement function has some limitations:
"[[.ch.]]") or
equivalence classes (such as "[[=a=]]").