XPath.match always returns an array, even if the evaluated value is not a nodeset.
REXML::XPath.match(REXML::Document.new, '1 + 2') #=> [3]
Nokogiri::XML.parse('<root/>').xpath('1+2') #=> 3
XPath.first returns non-nodeset value. first of non-nodeset value doesn't make sense.
ref: #342 (comment)
REXML::XPath.first(REXML::Document.new, '1 + 2') #=> 3
XPath.match always returns an array, even if the evaluated value is not a nodeset.
XPath.firstreturns non-nodeset value.firstof non-nodeset value doesn't make sense.ref: #342 (comment)