const regex = /^([^\d\n]+(?:\d+[^\d\n]*)?)(?: |$)(?:(\d+|SN\b) *([^\d\n]+\d+))?$/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^([^\\d\\n]+(?:\\d+[^\\d\\n]*)?)(?: |$)(?:(\\d+|SN\\b) *([^\\d\\n]+\\d+))?$', 'gm')
const 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`;
const subst = `no_logradouro:$1, nu_logradouro:$2, complemento:$3\n`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', 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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions