var wholelist = / ( // $1 = whole list ( // $2 [ ]{0,3} // attacklab: gtab_width - 1 ([+-]|\d+[.]) // $3 = first list item marker [ \t]+ ) [^\r]+? ( // $4 ~0 // sentinel for workaround; should be $ | \n{2,} (?=\S) (?! // Negative lookahead for another list item marker [ \t] (?:[*+-]|\d+[.])[ \t]+ ) ) )/g