text <- c("[AAA]xxxx", "[AAA] yyyrrr", "[AAA][bbb] bla", "[AAA][bbb] cccvvv",
"[AAA][bbb] bla", "[AAA][bbb][CcC] bla", "[AAA][bbb][CcC] xbbpr")
value <- rnorm(7)
df <- data.frame(text, value)
df$Bracket1 <- gsub('(?:.*?\\[([^][]*)\\].*|.*)', '\\1', text, perl=T)
df$Bracket2 <- gsub('(?:.*?\\[[^][]*\\].*?\\[([^][]*)\\].*|.*)', '\\1', text, perl=T)
df$Bracket3 <- gsub('(?:.*?\\[[^][]*\\].*?\\[[^][]*\\].*?\\[([^][]*)\\].*|.*)', '\\1', text, perl=T)
df
dGV4dCA8LSBjKCJbQUFBXXh4eHgiLCAiW0FBQV0geXl5cnJyIiwgIltBQUFdW2JiYl0gYmxhIiwgIltBQUFdW2JiYl0gY2NjdnZ2IiwgCiAgICAgICJbQUFBXVtiYmJdIGJsYSIsICJbQUFBXVtiYmJdW0NjQ10gYmxhIiwgIltBQUFdW2JiYl1bQ2NDXSB4YmJwciIpIAp2YWx1ZSA8LSBybm9ybSg3KQpkZiA8LSBkYXRhLmZyYW1lKHRleHQsIHZhbHVlKQpkZiRCcmFja2V0MSA8LSBnc3ViKCcoPzouKj9cXFsoW15dW10qKVxcXS4qfC4qKScsICdcXDEnLCB0ZXh0LCBwZXJsPVQpCmRmJEJyYWNrZXQyIDwtIGdzdWIoJyg/Oi4qP1xcW1teXVtdKlxcXS4qP1xcWyhbXl1bXSopXFxdLip8LiopJywgJ1xcMScsIHRleHQsIHBlcmw9VCkKZGYkQnJhY2tldDMgPC0gZ3N1YignKD86Lio/XFxbW15dW10qXFxdLio/XFxbW15dW10qXFxdLio/XFxbKFteXVtdKilcXF0uKnwuKiknLCAnXFwxJywgdGV4dCwgcGVybD1UKQpkZg==