i don't think you need an extra () for the leading white space. just tack it on in with the leading expression.
the hoc is unnecessary. just start with 2.
fn buildre {
re = 's:^([ ]*'
for(i in `{seq 2 $1})
re = $re ^ '[^ ]+[ ]+'
re = $re ^ ')([^ ]+):\1' ^ $2:
}
; buildre 1 hell
; whatis re
re='s:^([ ]*)([^ ]+):\1hell:'
; buildre 2 hell
; whatis re
re='s:^([ ]*[^ ]+[ ]+)([^ ]+):\1hell:'
- erik
