For square brackets, use regular parentheses to group subexpressions. For square brackets, either use escaped parentheses or, preferably, rewrite the expression into multiple square bracket statements joined with '&&' and '||' groups. This approach is recommended as square bracket is undefined for more than four arguments in POSIX.