Lower Camel Case - no digits allowed
^[a-z][a-z]*(([A-Z][a-z]+)*[A-Z]?|([a-z]+[A-Z])*|[A-Z])$
Test Cases: https://regex101.com/library/4h7A1I
Lower Camel Case - digits allowed
^[a-z][a-z0-9]*(([A-Z][a-z0-9]+)*[A-Z]?|([a-z0-9]+[A-Z])*|[A-Z])$
Test Cases: https://regex101.com/library/8nQras
Lower Camel Case - digits allowed - Upto 3 upper case letters
To match more than one upper case letter (eg. deviceID
, serialNO
, awsVPC
, deviceSN
) it gets slightly more involved:
^[a-z][a-z0-9]*(([A-Z]{1,3}[a-z0-9]+)*[A-Z]{0,3}|([a-z0-9]+[A-Z]{1,3})*|[A-Z]{1,3})$
Test Cases: https://regex101.com/library/C2eHyc
Pascal Case - no digits allowed
^[A-Z](([a-z]+[A-Z]?)*)$
Test Cases: https://regex101.com/library/sF2jRZ
Pascal Case - digits allowed
^[A-Z](([a-z0-9]+[A-Z]?)*)$
Test Cases: https://regex101.com/library/csrkQw
Pascal Case - digits allowed - Upto 3 upper case letters
To match more than one upper case letter (eg. DeviceID
, SerialNo
, AwsVPC
, IOStream
, StreamIO
, DeviceSN
) it gets slightly more involved:
^[A-Z](([A-Z]{1,2}[a-z0-9]+)+([A-Z]{1,3}[a-z0-9]+)*[A-Z]{0,3}|([a-z0-9]+[A-Z]{0,3})*|[A-Z]{1,2})$
Test Cases: https://regex101.com/library/TLTXbK
For more details on camel case and pascal case check out this repo.