"xyz" =~ /\w*?/g; #### s/(\w*?)/($1)/g #### ()(x)()(y)()(z)() #### :s/\v(.{-0,})/(\1)/g #### ()x()y()z #### ()x()y()z() #### begin(N) <= end(N) <= begin(N+1) <= end(N+1) begin(N) < begin(N+1) end(N) < end(N+1) #### A ()xyz # Return it b (x)yz # Fails: 0==begin(A) < begin(b)==0 c (xy)z # Fails: 0==begin(A) < begin(c)==0 d (xyz) # Fails: 0==begin(A) < begin(d)==0 E x()yz # Return it f x(y)z # Fails: 1==begin(E) < begin(f)==1 g x(yz) # Fails: 1==begin(E) < begin(g)==1 H xy()z # Return it i xy(z) # Fails: 2==begin(H) < begin(i)==2 J xyz() # Return it #### A ()xyz # Return it B (x)yz # Return it c (xy)z # Fails: 1==end(B) <= begin(c)==0 d (xyz) # Fails: 1==end(B) <= begin(d)==0 E x()yz # Return it F x(y)z # Return it g x(yz) # Fails: 2==end(F) <= begin(g)==1 H xy()z # Return it I xy(z) # Return it J xyz() # Return it #### (x)()y()z() #### :s/\vx{-0,}(x)@!/(\1)/g (x)y()z #### (x)y()z()