pakmanaged.js
function parsePath (path) {
      var str = path.replace(/([^\\])\[/g, '$1.[')
        , 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.replace(/\\([.\[\]])/g, '$1') };
      });
    }
function parsePath (path) {
      var str = path.replace(/([^\\])\[/g, '$1.[')
        , 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.replace(/\\([.\[\]])/g, '$1') };
      });
    }
/*!
## parsePath(path)

Helper function used to parse string object
paths. Use in conjunction with `_getPathValue`.

var parsed = parsePath('myobject.property.subprop');

### Paths:

* Can be as near infinitely deep and nested
* Arrays are also valid using the formal `myobject.document[3].property`.
* Literal dots and brackets (not delimiter) must be backslash-escaped.

@param {String} path
@returns {Object} parsed
@api private