Are Bitcoin addresses case sensitive? I sent $20 to my wallet ex. bc1qa4dk0fqvw7jfpvzgy9xpf7572kv9env9y748ct.
But instead I sent it to that address in all caps.
I haven't received the money and it's been 3 hours.
Are BTC addresses cap sensitive?
And what should I do?
Segwit addresses like the one you posted are case insensitive. Assuming your wallet is up to the spec, it should be able to send the BTC just fine.
If you have a transaction ID, look it up on an explorer to see if it has been confirmed.
If you don't have a transaction ID, and you have the private keys for the wallet, you should simply be able to make another transaction.
If this is a custodial wallet like an exchange or other wallet service, you will need to contact them.

To elaborate a little on the question in the title:

base58 encoded addresses (1... and 3...) are case sensitive - however, getting the casing wrong will result in a checksum error, and a well designed wallet will not let you send a transaction to an incorrectly entered address
bech32 addresses like the one involved here are case insensitive but, as pointed out by Murch, must be entirely uppercase or lowercase - a compliant wallet should reject a mixed case bech32 address.