code: function(attr) {
        return _.reduce(attr.match(/\[.+?\]/g), function(result, arrayNotation) {
          var token = arrayNotation.substring(1, arrayNotation.length - 1);
          if (!isNaN(token)) {
            result.push(parseInt(token, 10));
          } else {
            result.push(token);
          }
          return result;
        }, []);
      }
docs: Returns an array of all the values and variables used within the array notations in a string
  Example: foo.bar[x].baz[0][1].taz[y] will return ['x', 0, 1, 'y']. It will parse integers if they are numbers
  This does not handle or return any "open" array notations: []
  @private
  @method __getAllIndexTokens