English modal verbs are both important and subtle.
The subjunctive form is an attitude, not a defined structure. That is why we call it the subjunctive mood. The grammatical term subjunctive is not the same as the linguistic term subjunctive. As a general term, subjunctive is when there exists intention to describe an imaginary situation.
Should have + past participle can mean something that would have been a good idea, but that you didn’t do it. It’s like giving advice about the past when you say it to someone else, or regretting what you did or didn’t do when you’re talking about yourself.
I should have studied harder!
May have and might have mean the same thing in American English, and are nearly always interchangeable.
I may have been taking a shower when you called. I might have been taking a shower when you called.
In British English we use may have and might have to show that something has possibly happened now or happened at some time in the past:
It’s ten o’clock. They might have arrived now. They may have arrived hours ago.
Only may is used to communicate that something is permitted:
No one may enter without a ticket.
Only might is used to talk about an unreal condition or situation:
If you were more experienced, you might have an easier time finding a job.
Can have implies that someone has the opportunity to possess or do something.
Mary can have an ice cream cone when she gets home. George can have his friends over after school.
Could have + past participle means that something was possible in the past, or you had the ability to do something in the past, but that you didn’t do it.
I could have loved you, had you too loved me. I could have stayed up late, but I decided to go to bed early.
The modal verb must has two past tense forms: had to and must have. Which form we use depends on whether we want to express obligation or if we want to say how certain we are about the probability of something happening.
He must have left the house by now; it’s nearly 11 o’clock.