Hi @Cityenergy !
Try out this flow.

Initially for the first Retrieve email messages, here is what it looks like:

I will not save the attachments initially, just retrieve those email messages with that Subject 'Purchase Requisition'
Next I use a loop for each retrieved email. In that a condition i use, expression is this:
%Contains(RetrievedEmail.Subject, 'Purchase Requisition',True) AND Contains(RetrievedEmail.Subject, 'has been approved',True)%
Since these 2 are keywords.
Then i use Crop text to get the PR Number. Trim for any whitespaces.
then again use retrieve email messages action. This is for the second one:

Here i specified in the subject field to fetch only that which matches and save the attachments to a folder. And also mark as read after doing this.
Input:

Output:

Code(Copy and paste the below code into your power automate desktop):
Outlook.Launch Instance=> OutlookInstance
Outlook.RetrieveEmailMessages.RetrieveEmails Instance: OutlookInstance Account: $'''test@hotmail.com''' MailFolder: $'''Inbox''' EmailsToRetrieve: Outlook.RetrieveMessagesMode.Unread MarkAsRead: False ReadBodyAsHtml: False FromContains: $'''test@hotmail.com''' SubjectContains: $'''Purchase Requisition''' Messages=> RetrievedEmails
LOOP FOREACH RetrievedEmail IN RetrievedEmails
IF (Contains(RetrievedEmail.Subject, 'Purchase Requisition') AND Contains(RetrievedEmail.Subject, 'has been approved')) = $'''True''' THEN
Text.CropText.CropTextBetweenFlags Text: RetrievedEmail.Subject FromFlag: $'''Purchase Requisition''' ToFlag: $'''has been approved''' IgnoreCase: False CroppedText=> PRNumber IsFlagFound=> IsFlagFound
Text.Trim Text: PRNumber TrimOption: Text.TrimOption.Both TrimmedText=> PRNumber
Outlook.RetrieveEmailMessages.RetrieveEmailsAndSaveAttachments Instance: OutlookInstance Account: $'''test@hotmail.com''' MailFolder: $'''Inbox''' EmailsToRetrieve: Outlook.RetrieveMessagesMode.Unread MarkAsRead: True ReadBodyAsHtml: False FromContains: $'''test@hotmail.com''' SubjectContains: $'''Purchase Requisition %PRNumber% has been approved''' SaveAttachmentsInto: $'''C:\\Users''' Messages=> RetrievedEmails2
ELSE
NEXT LOOP
END
END
Outlook.Close Instance: OutlookInstance
Just replace your Attachment path and Email IDs for fields To and From in this code.
I hope this helps.