How to change query string with pretty URL in WordPress using .htaccess file

Are you failing to supply the trailing slash on the pre-rewrite URL? That regex won’t match without it.

Since your /parent-page and /parent-page/child-page are WordPress pages you shouldn’t be using .htacceess for this at all, because it would prevent WordPress from loading for those URLs. Instead you should be hooking to query_vars so WordPress won’t strip your new variable from the querystring and to rewrite_rules_array to handle the actual rewrite.