According to https://www.gnu.org/software/findutils/manual/html_node/find_html/emacs-regular-expression-syntax.html
GNU extensions are supported: 1. ‘\w’ matches a character within a word 2. ‘\W’ matches a character which is not within a word 3. ‘\<’ matches the beginning of a word 4. ‘\>’ matches the end of a word 5. ‘\b’ matches a word boundary 6. ‘\B’ matches characters which are not a word boundary 7. ‘\`’ matches the beginning of the whole input 8. ‘\'’ matches the end of the whole input However if I try using \` and \' in patsubst, it fails to find the match. $ echo 'changequote()changequote([,])debugmode()traceon[]patsubst(good[] bad,\`.*'\\\'',a\&b)'|m4 m4trace: -1- patsubst([good bad], [\`.*\'], [a\&b]) -> [good bad] good bad \< \> seems to be supported. $ echo 'changequote()changequote([,])debugmode()traceon[]patsubst(good[] bad,\<.*\>,a\&b)'|m4 m4trace: -1- patsubst([good bad], [\<.*\>], [a\&b]) -> [agoodb abadb] agoodb abadb $ m4 --version m4 (GNU M4) 1.4.18 Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html >. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Rene' Seindal. $ cat /etc/redhat-release Fedora release 26 (Twenty Six) Thanks