I tested it's if then else equivalent and what you said is right, it evaluates to true for all strings that start with a..y (regardless of what the rest of the characters in that string are.. even string amBER_%%%@ worked).
It works for string 'z' as well. But why don't strings like zoom, z' or 'z ' (z+space) or any string that starts with character 'z' and length > 1 work?
Because it is, as you said, if-then-else equivalent, so, let's take a look at eg. string 'za' -- the question is:
if ('za' >= 'a') // (1)
and ('za' <= 'z') // (2)
then
...
And the string starting with 'z' and with length > 1, eg. 'za' is greater then 'z', so, the result of (2) is false, it does not fall in the range 'a'..'z'.