link printf procedure main() while writes("Line? ") & line := read() do { line ? every m := aNbNcN() do printf("At %d: '%s'\n", m[1], m[2]) } end procedure aNbNcN() tab(upto('a')) & start := &pos & as := tab(many('a')) & bs := tab(many('b')) & cs := tab(many('c')) & *as = *bs = *cs & suspend [start, as || bs || cs] end