((\\)+\1)* is not equivalent to (\\\\)* because of the
grouping (and the multiplier, but that part is obvious).
I think, because you group the entire term ((\\)+\1)) then \1 is not
refering to the (\\). I believe \1 would be undefined at that moment because
you are actually inside the first pattern which would be ((\\)+\1)).
I am sure you want to use the ?: operator which "is for clustering, not capturing"
which is from the
perlre perldoc. Using ?:, the outer group
will not get reference to \1 or $1, so the (\\) will get referenced to \1.
Then (?:(\\)+\1))* should be equivalent to (\\+\\)*
I am sure this is all vague and confusing to most, but I hope it helped a little.