Skip to content

Invalid regex with multiple repetition flags is accepted #1201

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
spektom opened this issue Jun 6, 2024 · 3 comments
Closed

Invalid regex with multiple repetition flags is accepted #1201

spektom opened this issue Jun 6, 2024 · 3 comments

Comments

@spektom
Copy link

spektom commented Jun 6, 2024

What version of regex are you using?

Latest

Describe the bug at a high level.

The following regexes are accepted while they shouldn't:

[0-9]++
[0-9]+++
...

Looks like the extra repetition flags have no effect after all.

What are the steps to reproduce the behavior?

Link to the playground

What is the expected behavior?

Invalid regular expression: /[0-9]++/: Nothing to repeat.

@spektom spektom changed the title Invalid regex with multiple repetition flags isaccepted Invalid regex with multiple repetition flags is accepted Jun 6, 2024
@BurntSushi
Copy link
Member

The following regexes are accepted while they shouldn't

On what basis are you claiming that they "shouldn't" be valid?

Anyway, this is probably duplicate of #765.

@spektom
Copy link
Author

spektom commented Jun 6, 2024

These patterns are invalid in other regex engines - does this qualify for a good enough reason? :)
I understand that each regex engine may have slightly different rules as there's no unique standard. Maybe it should be mentioned in the documentation that extra flags are ignored?

Anyway, thanks for your tremendous work!

@BurntSushi
Copy link
Member

These patterns are invalid in other regex engines - does this qualify for a good enough reason? :)

No. Think about what that would mean if this were actually applied.

Maybe it should be mentioned in the documentation that extra flags are ignored?

I don't think so. At least, not in the existing syntax docs. Those was brought up before in the linked issue (or another one), but this is a pathological case and there is nothing in the docs that suggests this pattern would be illegal. The only reason people seem to think it's weird is because other regex engineers reject it. But I see no reason to reject it. Again, I wrote out a full explanation in the linked issue. And suggested this is something that belongs in "differences with other regex engines" doc. There's an issue for that too.

@BurntSushi BurntSushi closed this as not planned Won't fix, can't repro, duplicate, stale Jun 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants