re = /^([^\d\n]+(?:\d+[^\d\n]*)?)(?: |$)(?:(\d+|SN\b) *([^\d\n]+\d+))?$/m
str = 'AV 12 DE SETEMBRO 25 BLOCO 02
RUA JOSE ANTONIO 132 CS 05
AV CAXIAS 02 CASA 03
AV 11 DE NOVEMBRO 2032 CASA 4
RUA 05 DE OUTUBRO 25 CASA 02
RUA 15
AVENIDA 3 PODERES'
subst = 'no_logradouro:$1, nu_logradouro:$2, complemento:$3\\n'
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