JSFiddle - React, Tailwind, and code Playground

HTML

<ol>

</ol>

CSS

li {
  white-space: pre-wrap;
}

.quote {
  background: silver;
}

JavaScript

const comment = `
[QUOTE]This is a quote

with multiple lines

end of quote
[/QUOTE]

Nice quote bro

[QUOTE]This is another quote[/QUOTE]

Reply to quote 123
`

//This split sucks atm
const splitComment = comment.split(/(\[QUOTE](.*?)\[\/QUOTE])/gs);

function isQuote(line) {
  return line.match(/(\[QUOTE](.*?)\[\/QUOTE])/gs);
}

const list = document.querySelector("ol");
splitComment.map(line => (
  list.innerHTML += `
  ${isQuote(line)? `<li class="quote">${line}</li>`: `<li>${line}</li>`}
  	
  `
))