Потому что у вас выражение "если есть пара круглых скобок (может быть, а может и не быть), а сразу после идёт пара квадратных скобок (могут быть, но могут и не быть), а за ними пара фигурных скобок (могут быть, а могут и не быть)". И ваша строка (] с этим RegExp даст false, потому что в ней нет ни (), ни [], ни {}.