正则表达式中 [^] 和 []* 的解释?

Interpretation of [^] and []*in regex expression?

我有一个包含特定位置地址数据的字符串向量,我想删除方括号中包含的所有信息。

address <- "[Market Street Food Centre]50, Market Street, Golden Shoe Multi-Storey Car Park, 2nd/3rd Storey, S(048940);[Berseh Food Centre]166, Jalan Besar, S(208877); [Dunman Food Centre]271, Onan Road, S(424768)"

解决方法如下:

remove_names <- gsub(pattern = "\[[^][]*\]", "", address)

输出:

[1] "50, Market Street, Golden Shoe Multi-Storey Car Park, 2nd/3rd Storey, S(048940);166, Jalan Besar, S(208877); 271, Onan Road, S(424768)"

但是,我不理解正则表达式的某些部分。更具体地说,[^][]* 是什么意思?

\[[^][]*\]
\[      \]  Matching outer [ and ]
   [   ]      A character set
        *     That charset repeated 0 or more times
    ^         Invert the set that follows
     ][       Set of two characters (square brackets)

目标似乎是删除任何带括号的字符串。但是,由于括号可能会嵌套,所以括号之间的文本仅限于 non-brackets.