Changed to a generic start tag pattern. Extracting the tag name from
that pattern match, and then finding all open and close tags of that
name, in order of appearance. #15
Using the tag matcher for keeping track of depth in the "course-index"
element. Starting at depth 0, each subsequent open tag of the same name
increases depth. Close tags of the same name decreases depth. When
reaching depth 0 again, the current match is the end tag of the
"course-index" tag. #15