/^(([a-z][a-zA-Z]*)+)(-(([a-z][a-zA-Z]+)+))?(--(([a-z][a-zA-Z]+)+))?$/m
An regex for Modified BEM or SUIT CSS
#+ Match these
block
block--modifier
block-element
block-element--modifier
blockName
blockName--modifierName
blockName-elementName
blockName-elementName--modifierName
is-disabled
u-utilityName
#- Don't match these
Block
Block--modifier
Block-element
Block-element--modifier
Block-element-subElement
Block-name
Block-name--modifier-name
Block-name-element-name
Block-name-element-name--modifier-name
BlockName
BlockName--modifier
BlockName-element
BlockName-element--modifier
Is-disabled
is-Disabled