11 // Match, but the transformation is not sound w.r.t. possible side effects.
12 println(strings.Repeat("*", 3))
14 // No match, since second use of wildcard doesn't match first.
15 println(strings.Repeat("*", 3)[:len(strings.Repeat("*", 2))])
17 // Recursive match demonstrating bottom-up rewrite:
18 // only after the inner replacement occurs does the outer syntax match.