const regex = /((?:<li\b[^>]*>.*?<\/li>))/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('((?:<li\\b[^>]*>.*?<\\\/li>))', 'gm')
const str = `<ol type="A" lang="en-CA" style="margin-bottom: 0in; line-height: 100%">
<li type="A"><span>Text</span></li>
<li><span>More text</span></li>
</ol>
<ol type="I" style="font-weight: bold;">
<li><span>Text</span></li>
<li><span>More text</span></li>
</ol>
<ol type="1" style="font-weight: bold;">
<li><span>Text</span></li>
<li><span>More text</span></li>
</ol>`;
const subst = `$1`;
// 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