text()
matches a text node
[starts-with('OBJECTIVES')]
the string value of the text node must start with "OBJECTIVES"
[preceding-sibling::*
there must be a preceding sibling
[1]
that is the first preceding sibling
[self::br]]
and that is a br element
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference