const regex = /^[\S\s]*?^([^][]*=)\[\[.*\]\]\K\]\R\1\[(.*)\]$/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^[\\S\\s]*?^([^][]*=)\\[\\[.*\\]\\]\\K\\]\\R\\1\\[(.*)\\]$', 'gm')
const str = `1 NameA - DirectionA=[[StreetA @ StreetB,[Lat,Long]]]
1 NameA - DirectionA=[[StreetC @ StreetD,[Lat,Long]]]
1 NameA - DirectionA=[[StreetF @ StreetE,[Lat,Long]]]
1 NameA - DirectionB=[[StreetE @ StreetF,[Lat,Long]]]
1 NameA - DirectionB=[[StreetG @ StreetH,[Lat,Long]]]
2 NameB - DirectionC=[[StreetI @ StreetJ,[Lat,Long]]]
2 NameB - DirectionC=[[StreetK @ StreetL,[Lat,Long]]]
2 NameB - DirectionD=[[StreetM @ StreetN,[Lat,Long]]]
2 NameB - DirectionD=[[StreetO @ StreetP,[Lat,Long]]]`;
const subst = `, \2]`;
// 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