diff --git a/src/utils/pattern.spec.ts b/src/utils/pattern.spec.ts index 95bf3303..3093b99b 100644 --- a/src/utils/pattern.spec.ts +++ b/src/utils/pattern.spec.ts @@ -82,6 +82,11 @@ describe('Utils → Pattern', () => { assert.ok(util.isDynamicPattern('{a,}')); assert.ok(util.isDynamicPattern('{,b}')); assert.ok(util.isDynamicPattern('{a,b}')); + assert.ok(util.isDynamicPattern('{a,b,c}')); + assert.ok(util.isDynamicPattern('{a' + ','.repeat(999999) + 'b}')); + assert.ok(util.isDynamicPattern('{a,b,{c,d}}')); + // The second braces pass + assert.ok(util.isDynamicPattern('{a,b,{c,d}')); assert.ok(util.isDynamicPattern('{1..3}')); }); diff --git a/src/utils/pattern.ts b/src/utils/pattern.ts index 1c3ab54f..45453e9e 100644 --- a/src/utils/pattern.ts +++ b/src/utils/pattern.ts @@ -12,7 +12,7 @@ const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/; const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/; const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/; -const BRACE_EXPANSIONS_SYMBOLS_RE = /{[^,.{]*(?:,|\.\.)[^,.{]*}/; +const BRACE_EXPANSIONS_SYMBOLS_RE = /{[^,.{]*(?:,|\.\.)[^{]*}/; type PatternTypeOptions = { braceExpansion?: boolean;