1. Contains only characters a-z, A-Z, 0-9, @, #, and $.

2. First character in the string must be an alphabetic character, @, #, or $. (i.e. not a number)

3. Cannot be a number or the letter sequences SYS, PGM, or APL.

4. Length of 3 characters minimum and 8 characters maximum.

I think I've got the first three covered with:

^(((?!DBM|IBM|SYS)^[a-zA-Z])[a-zA-Z0-9@#$]{3,8})+$

But, I can't get the 4th rule (length) working. I'm new to this, so any help is greatly appreciated