bash
entende expressões regulares estendidas padrão ("ERE"), não PCRE ("expressões regulares compatíveis com Perl").
Seu PCRE:
cell-(90|855|80|70)-(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD)(?:-(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD))-[a-z]
O (?:...)
em um PCRE é um grupo que não captura (não é um grupo opcional). Não há equivalente em um ERE e todos os grupos estão capturando.
Para tornar uma expressão opcional, você pode qualificá-la com ?
, como eu fiz abaixo. O ?
significa que a expressão anterior deve corresponder a uma ou zero vezes.
Como um ERE:
cell-(90|855|80|70)-(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD)(DEV|DEVL|SANDP|CAT|(SIT[a-z]|SIT[1-9])|TAT|PROD)?-[a-z]
ou, contratando (SIT[a-z]|SIT[1-9])
em SIT[a-z1-9]
,
cell-(90|855|80|70)-(DEV|DEVL|SANDP|CAT|SIT[a-z1-9]|TAT|PROD)(-(DEV|DEVL|SANDP|CAT|SIT[a-z1-9]|TAT|PROD))?-[a-z]
Você também pode querer adicionar ancoragem a isso:
^cell-(90|855|80|70)-(DEV|DEVL|SANDP|CAT|SIT[a-z1-9]|TAT|PROD)(-(DEV|DEVL|SANDP|CAT|SIT[a-z1-9]|TAT|PROD))?-[a-z]$
... caso contrário, ele corresponderia a somethingcell-...-ablahblah