It your numbers are freely mixed with letters, Regular Expression is quite unsuitable. Not only it's extremely hard to write the regular expression for such a mix, the idea of "any letter" is nearly impossible to express, if you want to allow all Unicode letters. With C#, it's easy to do. If you want, say, English characters only, it's also easier to do with C#.
Here is how: Fist, check up maximum length. Then traverse the string and count characters in 3 classes: letters, digits and the other. Before the cycle, initialize two counter variables to zero: one for letters and one for digits. In a loop, if non-letter and non-digit appears, return false (failure) immediately, otherwise increment the counter of letters of digits.
You can use the functions
Char.IsLetter Method (Char) (System)[
^],
Char.IsDigit Method (Char) (System)[
^],
or, even better,
Char.IsLetterOrDigit Method (Char) (System)[
^].
If you want to allow English characters only, just checkup that the character is between "A" and "z"; for other languages, the similar check can be not as simple.
That's all.
Just one note: the suggested criterion is really bad for a password. You can read recommendations on good password constraints in many places.
—SA