const regex = /(Armor.)([a-zA-Z]+)(, Surface.)([a-zA-Z]+)(, name)/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(Armor.)([a-zA-Z]+)(, Surface.)([a-zA-Z]+)(, name)', 'g')
const str = `internal CruiserTorpedo(Player owner) : this(owner, "") {
}
internal CruiserTorpedo(string name) : base("Torpedo Cruiser",
new UnitDimensions(4),
new List<Weapon> { new ShipGunSmall(0, 0), new ShipGunSmall(0, 1), new TorpedoTube(0, 2), new AAAGun(0, 3) },
Armor.Light, Surface.Water, name) {
}`;
const subst = `$1$2$3$4, 1$5`;
// 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