re = /^.*?\+?0*610?(\d{3})(\d{3})(\d{4})(?!\d).*$/m
str = 'xgsh6101231231234vvajxxgsh6101231231234vvajx
xgsh06101231231234vvajx
xgsh000006101231231234vvajx
+6101231231234
xgsh61012312312345vvajx
xgsh5101231231234vvajx
xgsh00000101231231234vvajx
xgsh6143545626455345601231231234vvajx
'
subst = '+61 (0) $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