Perl 5, 70 bytes
Perl 5, 60 bytes
6859 bytes code + 21 for -nlp.
@n=0$_="@{[0..$_*9;map{($;=++$_)*9]}";$_=eval's/\b[^ $-++while$n[$-]=~]+ /[$_]/;$-=!print splice@n,$-,1}0..$_++;$&;'x$
I'm sure this can be improved considerably, I'll play with this after work.
Try it online!Try it online! (Includes -l for visual purposes and $-=0; to reset each iteration)