function parsePath (path) {
  var str = path.replace(/\[/g, '.[')
    , parts = str.match(/(\\\.|[^.]+?)+/g);
  return parts.map(function (value) {
    var re = /\[(\d+)\]$/
      , mArr = re.exec(value);
    if (mArr) return { i: parseFloat(mArr[1]) };
    else return { p: value };
  });
}
### .getPathInfo(path, object)

This allows the retrieval of property info in an
object given a string path.

The path info consists of an object with the
following properties:

* parent - The parent object of the property referenced by `path`
* name - The name of the final property, a number if it was an array indexer
* value - The value of the property, if it exists, otherwise `undefined`
* exists - Whether the property exists or not

@param {String} path
@param {Object} object
@returns {Object} info
@name getPathInfo
@api public