How is it that
grep -r utf-8 *
is a valid search, while
grep -r utf-8 *.rb
instantly returns
grep: *.rb: No such file or directory?
It can't mean "sorry, I looked and didn't find any *.rb files with that content" because it returns instantly; it's not even looking.
...and for the record, yes, I also tried ".rb", with the same result.