Criteria to achieve with regex pattern for the input text is,
- Support at-least one Uppercase letter
- Support at-least one Lowercase letter
- Support at-least one Special character listed --> @ % $
- Support at-least one Digit
No Start and End Criteria.
Trying to achieve with below single regex,
^(
  (\w+\d+[@%\$]+)
     |
     (\d+[@%\$]+\w+)
        |
        ([@%\$]+\d+\w+)
             |
             (\w+[@%\$]+\d+)
)$
Problem is,
Support for at-least one uppercase is not working. I am pretty sure that it is not a good approach to build the regex pattern.
Please help me to achieve these criteria in single regex pattern.
Thanks in Advance!!!
Pass Criteria
Test@123
tesT@123
@123tesT
123@Test
TTTTeeeess@@@@$$$111112222
@@@@$$$1111TTT@@@$$esss
Fail Criteria
Test (No special character) 
@123 
123 
@ 
T 
test 
test@123   (No Uppercase) 
Test@123&  ('&' not to be supported in the pattern) 
@123test  
@TTT123   (No Lowercase) 
 
     
    