^.?$|^(..+?)\1+$
<answer>
Matches strings of any character repeated a non-prime number of times
Something like
!“A line with exactly 0 or 1 characters, or a line with a sequence of 1 or 3 or more characters, repeated at least twice”!<
You’re misreading the
..+?
part. That means 2 or more characters, non greedy.It’s a line with a sequence of two or more characters repeated at least twice.
Only the part after the pipe character. The pipe character works as an “or” operator. RegalPotoo is right.
They said—
A line with exactly 0 or 1 characters, or a line with a sequence of 1 or 3 or more characters, repeated at least twice
Note—
…or a line with a sequence of 1 or 3 or more characters, repeated at least twice
It should be—
…or a line with a sequence of 2 or more characters, repeated at least twice
The regex in the post will match “abab”. Their original description (line 2 of this comment) will not match “abab”.
I agree, you’re right about the part after the pipe and RegalPotoo’s explanation was not entirely correct.