@paulbrians, he’s certainly correct about a longer password being much better (the difficulty increases exponentiallyl with the length), but it’s far better to use all sets than to increase by one character.
Here’s a little gedankenexperiment:
You’re a hacker, and you have the collection of hash values for the users in a system. The cover the gamut of password choices, from lower-case-only words to randomized sequences of lower-case (LC), upper-case (UC), numeric (N), and symbols (S). Your goal is to crack as many passwords as possible, as quickly as possible. You don’t know which passwords use only a single set (eg, lower-case).
You start by a LC-only brute-force attack. After each hash calculation, you check to see if any of the hashes have that value. If they do, you have the password. Each one-character increase in password length increases the brute-force time by 26x, so a 10-character LC-only password costs 26^10 = 1.56e+12
You end by a LC/UC/N/S brute-force attack. If we limit S to the set of 94 printable ascii symbols (0x21-0x7e), each one-char increase in password length increases the brute-force time by (26 + 26 + 10 + 94)x = 156x, so a 10-character password using LC/UC/N/S costs 156^10 = 8.54e+21 tries. A system that could crack a 10-char LC-only password in 1 minute would take about 10 millenia to crack an LC/UC/N/S password of the same length.
So if a user has added that single LC character vs adding a single N character, it’s only true that it takes a lot longer to crack if the hacker knows which set that character belongs to. But you (as the hacker) don’t care, since you’re working on cracking all of the hashes simultaneously. The first successful password cracks you’ll get will be LC-only.
I tried Elcomsoft’s “password retrieval” product many years ago (when it was Russian-based), and it was pretty snappy at LC-only cracking. Now it’s available as a GPU-based product, so probably a lot quicker. Their patents (eg US Patent for Use of graphics processors as parallel math co-processors for password recovery Patent (Patent # 7,929,707 issued April 19, 2011) - Justia Patents Search) describe a method in which the CPU provides subsets of the total range of password possibilities to each of the GPUs, after which each GPU generates the hashes and checks them against the complete list of hashes … this is pretty much what I described above, but is a parallel-processing implementation (akin to bitcoin mining on GPUs)