Why is it correct to write «he admits to having been lying», but not «he admits to have been lying»? (Perhaps the context is relevant.)
As Bob says, you need a noun or gerund.
All of these use a gerund and are correct:
1. He admits to lying.
2. He admits to having lied.
3. He admits to having been lying.
While 3. is correct, it wouldn't be used often. But since you want a progressive form in the past, you could say 3, or 4.
3. He admits that he had been lying.
Your other form, "
*he admits to have been lying" is wrong because of the requirements of:
admit to, confess to.
With some verbs you
can use this structure:
He pretends to have been lying.
He claims to have been lying.
In these cases, we can't use the form of sentence 1.
*He pretends to lying, so we can't use 2 or 3 either.