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