The problem is that your first example uses '-' as the separator in the date, but the last example uses '/'. I didn't know that the slash format was possible, so didn't account for it.
Change the template to
Code:
{comments:'contains($, 'Last Page Read:', re($, '(?is).*(\d\d[-/]\d\d[-/]\d\d\d\d).*?Last Page Read:.*', '\1'), 'Not Read')'}