re = /\b((?:id)*)(?=\S)|((?:id)+\b|\b(?<!id))|((?:id)+)/
str = 'longstringwithid1234andid4321init
id1id2id3
id213123213id12321321id
id123421321id12312321id65464
thereisandidanditsnameisbingoidbingoidbingoid2312321
ghjjhghjgd
dsadsadasdsaididididididdsadsadsa
dsa
das id dsadassa id sdadasdsa
idsa2311321id2312312id21321312
ididid1idid2idid3ididid'
subst = '${1:+[}${2:+]}${3:+, }'
result = str.gsub(re, subst)
# Print the result of the substitution
puts result
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html