C (gcc): 172 171 bytes
Edit: Thanks to ceilingcat for shortening the code to 172 171 bytes by using some nifty tricks!
Hello, first time posting code golf here! Criticism is welcome. :)
d[]={[98]=81,0,80,[108]=76,0,85,79,68,68,0,83,0,78,0,0,88,0,90};main(c,v)int**v;{for(char*s,*e;--c;s>e&&puts(v[c]))for(e=index(s=v[c],0);s<e--&d[*e]-*s+d[*s]+64==*e;)s++;}
Try it online (with explanation)
Explanation:
/**
* Thanks to ceilingcat for shortening the code to 171 bytes by using some nifty tricks!
*/
/**
* Stores the flipped equvilent of a character in upper case ASCII
* (sorry to anyone using EBCDIC) where the index is the character (lower case)
* and the value is the flipped equivalent of the character.
* The reason I used upper case is because writing many ['b'] = 'q' is more
* expensive (space-wise) than writing [66] = 81 and converting them each time
* (by adding or subtracting 32).
*/
d[]={[98]=81,0,80,[108]=76,0,85,79,68,68,0,83,0,78,0,0,88,0,90};
main(c,v)int**v;{
// Prints string if the 2 pointers crossed the middle which would
// mean the second loop never exited (is a palindrome) at the end.
for(char*s,*e;--c;s>e&&puts(v[c]))
// 'e=index(s=v[c],0)' gets the pointers for the first and last
// character of the string.
// Exits the loop when character '*s' is not equal to flipped character '*e' and
// vice versa or the 2 pointers cross at the middle of the string.
for(e=index(s=v[c],0);s<e--&d[*e]-*s+d[*s]+64==*e;)
s++;
}