When I was writing Makefile
all:
@echo '$/'
Its output is not $/, but a newline character
all:
@echo '$_'
Its output is the make path of my operating system.
So I'm guessing that make does the same thing as calling shell environment variables when dealing with symbols like $_, $a, $b.
This caused me to be unable to use $ in regular expressions in Makefile.