C++ std::regex -keinoilla pitäisi etsiä esimerkiksi : merkkien ja ; merkkien välinen alue, jossa voi olla rivinvaihtojakin välissä. Ongelma näyttää olevan, että jotenkin pitäisi saada etsittävän merkkijonon loppukohta toimimaan.
Kokeiltu on esimerkiksi seuraavan ohjelman avulla
#include <fstream>
#include <iostream>
#include <string>
#include <regex>
#include <iterator>
//                                                   tiedostonimi ohjelmaparametrina
int main (int argc, char** argv)
{
   std::ifstream ifs(argv[1]);  
   std::string s( (std::istreambuf_iterator<char>(ifs) ), (std::istreambuf_iterator<char>() )  ); 
  //std::regex re(":(.*|\n)*\\p");  // alue  : ..... p, ensimmäinen :  ja viimeinen p, toimii
   std::regex re(":(.*|\n)*\\;");  // alue  : ..... ;, ensimmäinen :  ja viimeinen ;, ei toimi ?????????
   std::regex_token_iterator<std::string::iterator> ite( s.begin(), s.end(), re ); 
   std::cout << std::endl << (*ite) << std::endl;    
   return 0; 
}
// käännöskomento oli 
// g++ testi02.cpp -o testi02 -std=c++17 -Wall -pedantic
 Jos loppumerkkinä on vaikka p, ohjelma näyttää toimivan niin, kuin pitääkin. Mutta ; ei käy loppumerkkinä ja ohjelma jää luultavasti silmukkaan. Kokeilussa on käytetty tässä alla olevaa pientä tekstitiedostoa
ååå <a> löytyy tämä </a> :: <table> tällainen 
         qqqq 
         >zc  jh  äää 
./testi01 testitiedosto.teksti 'y(.*|\n)*Å' -komennolla tehty ;;
             ei löydy </table>  ÅÅ ÅÅ loppu
Tiedosto on ehkä vähän hassun näköinen, mutta sillä on helppo kokeilla esimerkiksi å -alkuisia ja Å -loppuisia regexejä, jotka näyttävät toimivan. Mutta <table> ja </table> väliä en ole ainakaan toistaiseksi onnistunut saamaan. 
Kun ohjelamatiedoston nimi on ollut testi02 ja syötetiedoston nimi on ollut testitiedosto.teksti, olen kokeillut komennolla
./testi02 testitiedosto.teksti Käännöskomento on ollut
g++ testi02.cpp -o testi02 -std=c++17 -Wall -pedantic: ja ;  -merkkien välisen alueen hakeminen ei vain näytä onnistuvan 

Muokk.
Jos 
std::regex re(":(.*|\n)*p"); määrittelyn muuttaa muotoon 
std::regex re(":(.|\n)*p");ohjelma luultavasti toimii pikakokeilujen perusteella, ei 100% varmuutta.