Ну, если это все, что вы хотите сделать, все, что вам нужно сделать, это
result = string.sub('{', '').sub('[', '').sub('}', '').sub(']', '')
Конечно, это ужасно не элегантное решение, и оно не учитывает такие вещи, как непревзойденные скобки и т. Д.
Лучшее решение, вероятно, будет:
pattern1 = /\{(.*?)\}/
pattern2 = /\[(.*?)\]/
match1 = pattern1.match(string)
result = string.sub(match1[0], match1[1])
match2 = pattern2.match(result)
result = result.sub(match2[0], match2[1])
Возможно, это можно упростить, но это то, что приходит мне в голову:)
Кстати, если вы хотите заменить все экземпляры, все, что вам нужно сделать, это использовать gsub
вместо sub