code: func (bj BinaryJSON) Extract(pathExprList []PathExpression) (ret BinaryJSON, found bool) {
  	buf := make([]BinaryJSON, 0, 1)
  	for _, pathExpr := range pathExprList {
  		buf = bj.extractTo(buf, pathExpr)
  	}
  	if len(buf) == 0 {
  		found = false
  	} else if len(pathExprList) == 1 && len(buf) == 1 {
  		// If pathExpr contains asterisks, len(elemList) won't be 1
  		// even if len(pathExprList) equals to 1.
  		found = true
  		ret = buf[0]
  	} else {
  		found = true
  		ret = buildBinaryArray(buf)
  	}
  	return
  }
docs: // Extract receives several path expressions as arguments, matches them in bj, and returns:
  //  ret: target JSON matched any path expressions. maybe autowrapped as an array.
  //  found: true if any path expressions matched.