diff --git a/src/core/internal.ts b/src/core/internal.ts index 1f9bc87a..26a0b8c5 100644 --- a/src/core/internal.ts +++ b/src/core/internal.ts @@ -154,7 +154,7 @@ export function createInput< and: Object.assign((...inputs: InputSource[]) => createInput(`${s}${exactly(...inputs)}`), { referenceTo: (groupName: string) => createInput(`${s}\\k<${groupName}>`), }), - or: (...inputs) => createInput(`(?:${s}|${exactly(...inputs)})`), + or: (...inputs) => createInput(`(?:${s}|${inputs.map(v => exactly(v)).join('|')})`), after: (...input) => createInput(`(?<=${exactly(...input)})${s}`), before: (...input) => createInput(`${s}(?=${exactly(...input)})`), notAfter: (...input) => createInput(`(? { const multi = multichar.or('foo', input.groupedAs('groupName'), exactly('bar').or(test)) const regexp2 = new RegExp(multi as any) expect(regexp2).toMatchInlineSnapshot( - '/\\(\\?:ab\\|foo\\(\\?\\\\\\?\\)\\(\\?:bar\\|test\\\\\\.js\\)\\)/', + '/\\(\\?:ab\\|foo\\|\\(\\?\\\\\\?\\)\\|\\(\\?:bar\\|test\\\\\\.js\\)\\)/', ) expectTypeOf( extractRegExp(multi),