I hope one day a multiple-match function will come out to make multiple matches easier. But there are several ways to do it. Here is one. I can't say I have extensively tested it so let me know if it has any problems.

Add a column to your data table to put the author and book together.
Table 1::C2 =A2&":"&B2
Fill down to complete the column
You can hide this column later
Formula in Table 2::B2 =IF(A2≠"",TEXTJOIN(", ",TRUE,REGEX.EXTRACT("~"&TEXTJOIN("~",TRUE,Table 1::C)&"~","(?<=~"&A2&":)(.*?)(?=~)",0)),"")
Fill down
Explanation (using Author A as the input):
- It uses TEXTJOIN to join together all the Author::Book strings from Table 1::C with a ~ character between them, plus it puts one in front and back of the entire string.
- It then uses REGEX.EXTRACT to find all the times "~Author A:any characters~" appears in that textjoined string and makes an array of all the "any characters" it found, which will be the book titles for that author. More precisely it does a lookbehind (?<=~"&A2&":) to find "~Author A:" and does a look ahead (?=~) to find the "~" after the book title and it returns the text between those two things, for each occurrence it finds.
- Finally it uses TEXTJOIN to join all of those book titles together with a comma between them.
If I could guarantee a book title would not be the same as the name of an author (such as Carl Sagan authoring a book about space and someone else writing a book about him titled titled "Carl Sagan"), the extra column in Table 1 would not be needed and a slightly different formula would be used.
The tilde character "~" is not an acceptable character in a book title or author name. If there are any, you will need to use a different character in the formulas or in the authors/books. The ":" can also be problematic in specific cases but probably not a problem.