why 'save$' can not match the file named save?
root@debian:/home/tiger# ls /home/test
save
root@debian:/home/tiger# find /home/test -regex 'save$'
root@debian:/home/tiger# find /home/test -regex '.*save$'
/home/test/save
Because the regex is matched against the full path(i.e. /home/test/save) instead of just on the file name 'save'.
^ and $ anchors to match on the whole string, and, as the example by the OP shows, the $ is allowed. But it's as if there were an implicit ^ too. The question remains: Why?
find DIR -regextreat the regex as if it always had a leading^anchor and a trailing$anchor?