How to extract parent, child and grandchild from a treeview fomatted string?
Don't use regexes.  A tree is a recursively defined structure, and regexes don't do recursion (they can't match nested parens for the exact same reason).

You can easily build a tree structure by using a LIFO stack of nodes and maintaining an integer currentDepth, initially 0.  For each line, pop nTabsAtStartOfLine - currentDepth - 1 nodes off the stack, create a new node, make it the child of the current top-of-stack, push it on the stack, and set currentDepth = nTabsAtStartOfLine.