 <p><code>grep</code> and <code>find</code> will use different regular expression engines. Notably, POSIX regular expressions (which <code>find</code> uses) don't include "\b" as a word boundary, so it is the same as "b". On OSX, for instance, these have the same result:</p> <p><code>find . -regex '.*bar2.txt' -print</code></p> <p>and</p> <p><code>find . -regex '.*\bar2.txt' -print</code></p> <p>Double check the manpage to make sure that <code>-regex</code> is doing what you think. For my <code>find</code> the regular expression must match the entire filename, e.g. this doesn't find any files:</p> <p><code>find . -regex 'bar' -print</code></p> <p>but this one does:</p> <p><code>find . -regex '.*bar.*' -print</code></p>