I'm trying to filter some paths, where I want to use **. Unfortunately, the regex that's getting computed internal to Glob::filter() seems to be incorrect.
For example, the pattern /** compiles to ~^/[^/]*[^/]*$~. That will match /, /foo, /bar, but not /foo/bar. I believe it should be matching /foo/bar.
Similarly, the pattern /foo/** compiles to ~^/foo/[^/]*[^/]*$~. That will match /foo, /foo/bar, but not /foo/bar/baz.
So either there is a bug in the regex compiler in handling **, or I'm not understanding ** properly. I suppose either is possible. If there is some other way I should be doing this, please advise. (In practice I think I only need prefix-matching, but was trying to use a full glob for it for flexibility.)
I'm trying to filter some paths, where I want to use **. Unfortunately, the regex that's getting computed internal to
Glob::filter()seems to be incorrect.For example, the pattern
/**compiles to~^/[^/]*[^/]*$~. That will match/,/foo,/bar, but not/foo/bar. I believe it should be matching/foo/bar.Similarly, the pattern
/foo/**compiles to~^/foo/[^/]*[^/]*$~. That will match/foo,/foo/bar, but not/foo/bar/baz.So either there is a bug in the regex compiler in handling **, or I'm not understanding
**properly. I suppose either is possible. If there is some other way I should be doing this, please advise. (In practice I think I only need prefix-matching, but was trying to use a full glob for it for flexibility.)