I'm writing a password validator and I have 2 requirements:

1. presence of an uppercase letter
2. presence of a special character (#, $, %, etc...)

when I check for uppercase letters I do the following:

```
if letter == letter.upcase
# 'a' == 'A' false
# 'A' == 'A' true

```

the problem is some special characters are being detected as upper case numbers, for example:

```
'#' == 3.upcase # returns true

```

so its throwing off my scoring. How can I differentiate between an actual uppercase letter, vs something like a number + shift becoming a special symbol?