fork download
  1. x <- c('qux$foo$bar','qux$foo$bar; input$test$a$a','qux$`foo`; bar$`baz`; x$uvw','qux$`fo o`', 'q_ux$f_o_o$b.a_r')
  2. gsub('(\\w*)(?|\\$`([^`]*)`|\\$([^\\s$]+))', '\\1[["\\2"]]', x, perl=TRUE)
  3. gsub('\\$`([^`]*)`|\\$([^\\s$]+)', '[["\\1\\2"]]', x, perl=TRUE)
  4.  
Success #stdin #stdout 0.24s 39264KB
stdin
Standard input is empty
stdout
[1] "qux[[\"foo\"]][[\"bar\"]]"                                     
[2] "qux[[\"foo\"]][[\"bar;\"]] input[[\"test\"]][[\"a\"]][[\"a\"]]"
[3] "qux[[\"foo\"]]; bar[[\"baz\"]]; x[[\"uvw\"]]"                  
[4] "qux[[\"fo o\"]]"                                               
[5] "q_ux[[\"f_o_o\"]][[\"b.a_r\"]]"                                
[1] "qux[[\"foo\"]][[\"bar\"]]"                                     
[2] "qux[[\"foo\"]][[\"bar;\"]] input[[\"test\"]][[\"a\"]][[\"a\"]]"
[3] "qux[[\"foo\"]]; bar[[\"baz\"]]; x[[\"uvw\"]]"                  
[4] "qux[[\"fo o\"]]"                                               
[5] "q_ux[[\"f_o_o\"]][[\"b.a_r\"]]"