//var %a = AAAAAaAAAAAAAA | if (%a isupper) && (%a isalpha) echo caps detected
//var %a = AAAAA.AAAAAAAA | if (%a isupper) && (%a isalpha) echo caps detected
--> neither of those match.
Using regex for something like this makes sense, and it's easy to implement:
//var %a = AAAAA.AAAAAAAA | if ($regex(%a,/[A-Z]/g)) echo -a $v1 caps detected
But anyway, schaefer already gave a link to a thread that deals with this stuff in a good manner, so there's no need for us to go on. The point is that just using isupper or isalpha isn't going to cut it, it will require more code like looping through the word to find out how many upper case alpha chars there are, but since you can do the same with a simple regex without looping, I think it's obvious what we will prefer here.