var q = '{[{main}(other data)][{data}(other data)][{address}(other data)]}';
var qm = q.match(/\[(.*?)\]/g);  
console.log(qm);
The above regex returns text that's between parenthesis.
Eg:
 [{data}(other data)]
How can the above Regex be rewritten so I supplied a string like 'data' it would return [{data}(other data)]. i.e the part with parenthesis that contains the string in curly braces.
 
     
    