procedure nword() static wchar, line, i, j initial { wchar := &lcase ++ &ucase ++ '\'-' if line := read() then i := 1 else fail } repeat { while j := upto(wchar,line,i) do { i := many(wchar,line,j) return line[i:j] } if line := read() then i := 1 else fail } end