If you are spanning multiple lines, and you mean the single line mode that s provides, you can emulate that with [\S\s] or some other similar "all inclusive, all exclusive" style: [\d\D], [\W\w], etc.
That will allow it to span multiple lines and still match:
<div\s*class="selectionDescription">([\S\s]*?)<\/div>
You need to be wary of using lazy *? quantifiers, however. Take a look at https://regex101.com/r/xD2jV8/1 where the number of steps is 220.
If the content between <div> and </div> tags is very large, this becomes very computationally expensive, very fast.
While slightly less readable,
<div\s*class="selectionDescription">((?:[^<]+|<(?!\/div>))*)<\/div>
would do the same but within only 69 steps.
And at that point, https://regex101.com/r/xD2jV8/3 slightly optimizes it further, but HTML really isn't the best way to handle things with HTML. jQuery could perform this quickly and much "safer": $('div.selectionDescription').html()
Of course, you may not have access to this at this point, but HTML is usually not the best thing to use for parsing HTML.
\sdocument.getElemementsByClassName('selectionDescription')? Where is this string coming from and why are you using a regex on it?\gisn't a flag, btw, it's/g. Are you confusing\s(match a whitespace character) with the/sflag (to make.match new lines) or/g("match all")?