Simple "hyena" program Write a program that takes a string as an input. For the input:

If the input doesn't match the source code, the program shall output the input intact. (Hence a cat)

Otherwise, the program shall fall in an infinite loop. (So actually not a cat)
Ruby -0p, 38 37 32 bytes
Saved 5 bytes thanks to a comment by @Sisyphus on another answer.

eval s=&quot;1until$_!='eval s=%p'%s&quot;

Try it online!
The -0 flag sets the null byte as the input record separator. Without -0, a loop would also be entered if the input consisted of the code repeated on more than one line.