recursively Regular Expression Matching