# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(^-----BEGIN CERTIFICATE-----.*?-----END CERTIFICATE-----)$"
test_str = ("CONNECTED(000001E4)\n"
"---\n"
"Certificate chain\n"
" 0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=google.com\n"
" i:/C=US/O=Google Inc/CN=Google Internet Authority G2\n"
"-----BEGIN CERTIFICATE-----\n"
"MIIf0jCCHrqgAwIBAgIIGZoxm9FoLX0wDQYJKoZIhvcNAQELBQAwSTELMAkGA1UE\n"
"BhMCVVMxEzARBgNVBAoTCkdvb2dsZSBJbmMxJTAjBgNVBAMTHEdvb2dsZSBJbnRl\n"
"cm5ldCBBdXRob3JpdHkgRzIwHhcNMTUwODEyMTUxMTExWhcNMTUxMTEwMDAwMDAw\n"
"WjBkMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN\n"
"TW91bnRhaW4gVmlldzETMBEGA1UECgwKR29vZ2xlIEluYzETMBEGA1UEAwwKZ29v\n"
"Z2xlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALpjSPhP5nwn\n"
"VIHIruTW2NjRtqIadKQCyDzDrWD982PtaU4FRvkgFwhTo6VOvJ3oWZqIBlC4NT9+\n"
"lwKjVDoUNE2Jevl5+pOiBdPlzVfcxG5sywAn07K8WYJSh58olAJZnxKRRBeKZDTB\n"
"FtFPci2CAHGN69aN6YfLjB48BHTzSkpFY6wwCDvab7uuR8Ms3Hls8BU6rMt4Ju+y\n"
"V7EULMo0RXD3d4qY4dFreLpnEYaJCSzyYCLdMJB3VoVMb4sOVlfsRE/kQaK5TcIx\n"
"GYNmHvNJ0IdrFZ/hcSuI/52nfPw/jrMindhz7fTKmgrveCTFyXx/c8ipUdU6wQt7\n"
"wGeQYGyfAVUCAwEAAaOCHKEwghydMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n"
"BQcDAjCCG3cGA1UdEQSCG24wghtqggpnb29nbGUuY29tggoqLjJtZG4ubmV0gg0q\n"
"LmFuZHJvaWQuY29tghYqLmFwcGVuZ2luZS5nb29nbGUuY29tghQqLmF1LmRvdWJs\n"
"ZWNsaWNrLm5ldIILKi5jYy1kdC5jb22CEiouY2xvdWQuZ29vZ2xlLmNvbYIUKi5k\n"
"ZS5kb3VibGVjbGljay5uZXSCESouZG91YmxlY2xpY2suY29tghEqLmRvdWJsZWNs\n"
"aWNrLm5ldIIVKi5mbHMuZG91YmxlY2xpY2submV0ghQqLmZyLmRvdWJsZWNsaWNr\n"
"Lm5ldIIWKi5nb29nbGUtYW5hbHl0aWNzLmNvbYILKi5nb29nbGUuYWOCCyouZ29v\n"
"Z2xlLmFkggsqLmdvb2dsZS5hZYILKi5nb29nbGUuYWaCCyouZ29vZ2xlLmFnggsq\n"
"Lmdvb2dsZS5hbIILKi5nb29nbGUuYW2CCyouZ29vZ2xlLmFzggsqLmdvb2dsZS5h\n"
"dIILKi5nb29nbGUuYXqCCyouZ29vZ2xlLmJhggsqLmdvb2dsZS5iZYILKi5nb29n\n"
"bGUuYmaCCyouZ29vZ2xlLmJnggsqLmdvb2dsZS5iaYILKi5nb29nbGUuYmqCCyou\n"
"Z29vZ2xlLmJzggsqLmdvb2dsZS5idIILKi5nb29nbGUuYnmCCyouZ29vZ2xlLmNh\n"
"ggwqLmdvb2dsZS5jYXSCCyouZ29vZ2xlLmNjggsqLmdvb2dsZS5jZIILKi5nb29n\n"
"bGUuY2aCCyouZ29vZ2xlLmNnggsqLmdvb2dsZS5jaIILKi5nb29nbGUuY2mCCyou\n"
"Z29vZ2xlLmNsggsqLmdvb2dsZS5jbYILKi5nb29nbGUuY26CDiouZ29vZ2xlLmNv\n"
"LmFvgg4qLmdvb2dsZS5jby5id4IOKi5nb29nbGUuY28uY2uCDiouZ29vZ2xlLmNv\n"
"LmNygg4qLmdvb2dsZS5jby5odYIOKi5nb29nbGUuY28uaWSCDiouZ29vZ2xlLmNv\n"
"Lmlsgg4qLmdvb2dsZS5jby5pbYIOKi5nb29nbGUuY28uaW6CDiouZ29vZ2xlLmNv\n"
"Lmplgg4qLmdvb2dsZS5jby5qcIIOKi5nb29nbGUuY28ua2WCDiouZ29vZ2xlLmNv\n"
"Lmtygg4qLmdvb2dsZS5jby5sc4IOKi5nb29nbGUuY28ubWGCDiouZ29vZ2xlLmNv\n"
"Lm16gg4qLmdvb2dsZS5jby5ueoIOKi5nb29nbGUuY28udGiCDiouZ29vZ2xlLmNv\n"
"LnR6gg4qLmdvb2dsZS5jby51Z4IOKi5nb29nbGUuY28udWuCDiouZ29vZ2xlLmNv\n"
"LnV6gg4qLmdvb2dsZS5jby52ZYIOKi5nb29nbGUuY28udmmCDiouZ29vZ2xlLmNv\n"
"Lnphgg4qLmdvb2dsZS5jby56bYIOKi5nb29nbGUuY28ueneCDCouZ29vZ2xlLmNv\n"
"bYIPKi5nb29nbGUuY29tLmFmgg8qLmdvb2dsZS5jb20uYWeCDyouZ29vZ2xlLmNv\n"
"bS5haYIPKi5nb29nbGUuY29tLmFygg8qLmdvb2dsZS5jb20uYXWCDyouZ29vZ2xl\n"
"LmNvbS5iZIIPKi5nb29nbGUuY29tLmJogg8qLmdvb2dsZS5jb20uYm6CDyouZ29v\n"
"Z2xlLmNvbS5ib4IPKi5nb29nbGUuY29tLmJygg8qLmdvb2dsZS5jb20uYnmCDyou\n"
"Z29vZ2xlLmNvbS5ieoIPKi5nb29nbGUuY29tLmNugg8qLmdvb2dsZS5jb20uY2+C\n"
"DyouZ29vZ2xlLmNvbS5jdYIPKi5nb29nbGUuY29tLmN5gg8qLmdvb2dsZS5jb20u\n"
"ZG+CDyouZ29vZ2xlLmNvbS5lY4IPKi5nb29nbGUuY29tLmVngg8qLmdvb2dsZS5j\n"
"b20uZXSCDyouZ29vZ2xlLmNvbS5maoIPKi5nb29nbGUuY29tLmdlgg8qLmdvb2ds\n"
"ZS5jb20uZ2iCDyouZ29vZ2xlLmNvbS5naYIPKi5nb29nbGUuY29tLmdygg8qLmdv\n"
"b2dsZS5jb20uZ3SCDyouZ29vZ2xlLmNvbS5oa4IPKi5nb29nbGUuY29tLmlxgg8q\n"
"Lmdvb2dsZS5jb20uam2CDyouZ29vZ2xlLmNvbS5qb4IPKi5nb29nbGUuY29tLmto\n"
"gg8qLmdvb2dsZS5jb20ua3eCDyouZ29vZ2xlLmNvbS5sYoIPKi5nb29nbGUuY29t\n"
"Lmx5gg8qLmdvb2dsZS5jb20ubW2CDyouZ29vZ2xlLmNvbS5tdIIPKi5nb29nbGUu\n"
"Y29tLm14gg8qLmdvb2dsZS5jb20ubXmCDyouZ29vZ2xlLmNvbS5uYYIPKi5nb29n\n"
"bGUuY29tLm5mgg8qLmdvb2dsZS5jb20ubmeCDyouZ29vZ2xlLmNvbS5uaYIPKi5n\n"
"b29nbGUuY29tLm5wgg8qLmdvb2dsZS5jb20ubnKCDyouZ29vZ2xlLmNvbS5vbYIP\n"
"Ki5nb29nbGUuY29tLnBhgg8qLmdvb2dsZS5jb20ucGWCDyouZ29vZ2xlLmNvbS5w\n"
"Z4IPKi5nb29nbGUuY29tLnBogg8qLmdvb2dsZS5jb20ucGuCDyouZ29vZ2xlLmNv\n"
"bS5wbIIPKi5nb29nbGUuY29tLnBygg8qLmdvb2dsZS5jb20ucHmCDyouZ29vZ2xl\n"
"LmNvbS5xYYIPKi5nb29nbGUuY29tLnJ1gg8qLmdvb2dsZS5jb20uc2GCDyouZ29v\n"
"Z2xlLmNvbS5zYoIPKi5nb29nbGUuY29tLnNngg8qLmdvb2dsZS5jb20uc2yCDyou\n"
"Z29vZ2xlLmNvbS5zdoIPKi5nb29nbGUuY29tLnRqgg8qLmdvb2dsZS5jb20udG6C\n"
"DyouZ29vZ2xlLmNvbS50coIPKi5nb29nbGUuY29tLnR3gg8qLmdvb2dsZS5jb20u\n"
"dWGCDyouZ29vZ2xlLmNvbS51eYIPKi5nb29nbGUuY29tLnZjgg8qLmdvb2dsZS5j\n"
"b20udmWCDyouZ29vZ2xlLmNvbS52boILKi5nb29nbGUuY3aCCyouZ29vZ2xlLmN6\n"
"ggsqLmdvb2dsZS5kZYILKi5nb29nbGUuZGqCCyouZ29vZ2xlLmRrggsqLmdvb2ds\n"
"ZS5kbYILKi5nb29nbGUuZHqCCyouZ29vZ2xlLmVlggsqLmdvb2dsZS5lc4IMKi5n\n"
"b29nbGUuZXVzggsqLmdvb2dsZS5maYILKi5nb29nbGUuZm2CCyouZ29vZ2xlLmZy\n"
"ggwqLmdvb2dsZS5mcmyCCyouZ29vZ2xlLmdhggwqLmdvb2dsZS5nYWyCCyouZ29v\n"
"Z2xlLmdlggsqLmdvb2dsZS5nZ4ILKi5nb29nbGUuZ2yCCyouZ29vZ2xlLmdtggsq\n"
"Lmdvb2dsZS5ncIILKi5nb29nbGUuZ3KCCyouZ29vZ2xlLmd5ggsqLmdvb2dsZS5o\n"
"a4ILKi5nb29nbGUuaG6CCyouZ29vZ2xlLmhyggsqLmdvb2dsZS5odIILKi5nb29n\n"
"bGUuaHWCCyouZ29vZ2xlLmllggsqLmdvb2dsZS5pbYILKi5nb29nbGUuaW6CDSou\n"
"Z29vZ2xlLmluZm+CCyouZ29vZ2xlLmlxggsqLmdvb2dsZS5pcoILKi5nb29nbGUu\n"
"aXOCCyouZ29vZ2xlLml0gg4qLmdvb2dsZS5pdC5hb4ILKi5nb29nbGUuamWCCyou\n"
"Z29vZ2xlLmpvgg0qLmdvb2dsZS5qb2JzggsqLmdvb2dsZS5qcIILKi5nb29nbGUu\n"
"a2eCCyouZ29vZ2xlLmtpggsqLmdvb2dsZS5reoILKi5nb29nbGUubGGCCyouZ29v\n"
"Z2xlLmxpggsqLmdvb2dsZS5sa4ILKi5nb29nbGUubHSCCyouZ29vZ2xlLmx1ggsq\n"
"Lmdvb2dsZS5sdoILKi5nb29nbGUubWSCCyouZ29vZ2xlLm1lggsqLmdvb2dsZS5t\n"
"Z4ILKi5nb29nbGUubWuCCyouZ29vZ2xlLm1sggsqLmdvb2dsZS5tboILKi5nb29n\n"
"bGUubXOCCyouZ29vZ2xlLm11ggsqLmdvb2dsZS5tdoILKi5nb29nbGUubXeCCyou\n"
"Z29vZ2xlLm5lgg4qLmdvb2dsZS5uZS5qcIIMKi5nb29nbGUubmV0ggsqLmdvb2ds\n"
"ZS5uZ4ILKi5nb29nbGUubmyCCyouZ29vZ2xlLm5vggsqLmdvb2dsZS5ucoILKi5n\n"
"b29nbGUubnWCDyouZ29vZ2xlLm9mZi5haYILKi5nb29nbGUucGuCCyouZ29vZ2xl\n"
"LnBsggsqLmdvb2dsZS5wboILKi5nb29nbGUucHOCCyouZ29vZ2xlLnB0ggsqLmdv\n"
"b2dsZS5yb4ILKi5nb29nbGUucnOCCyouZ29vZ2xlLnJ1ggsqLmdvb2dsZS5yd4IL\n"
"Ki5nb29nbGUuc2OCCyouZ29vZ2xlLnNlggsqLmdvb2dsZS5zaIILKi5nb29nbGUu\n"
"c2mCCyouZ29vZ2xlLnNrggsqLmdvb2dsZS5zbYILKi5nb29nbGUuc26CCyouZ29v\n"
"Z2xlLnNvggsqLmdvb2dsZS5zcoILKi5nb29nbGUuc3SCCyouZ29vZ2xlLnRkggwq\n"
"Lmdvb2dsZS50ZWyCCyouZ29vZ2xlLnRnggsqLmdvb2dsZS50a4ILKi5nb29nbGUu\n"
"dGyCCyouZ29vZ2xlLnRtggsqLmdvb2dsZS50boILKi5nb29nbGUudG+CCyouZ29v\n"
"Z2xlLnR0ggsqLmdvb2dsZS51YYILKi5nb29nbGUudXOCCyouZ29vZ2xlLnV6ggsq\n"
"Lmdvb2dsZS52Z4ILKi5nb29nbGUudnWCCyouZ29vZ2xlLndzghIqLmdvb2dsZWFk\n"
"YXBpcy5jb22CFSouZ29vZ2xlYWRzc2VydmluZy5jboIPKi5nb29nbGVhcGlzLmNu\n"
"ghQqLmdvb2dsZWNvbW1lcmNlLmNvbYIRKi5nb29nbGV2aWRlby5jb22CDCouZ3N0\n"
"YXRpYy5jboINKi5nc3RhdGljLmNvbYIKKi5ndnQxLmNvbYIKKi5ndnQyLmNvbYIU\n"
"Ki5qcC5kb3VibGVjbGljay5uZXSCFCoubWV0cmljLmdzdGF0aWMuY29tghQqLnVr\n"
"LmRvdWJsZWNsaWNrLm5ldIIMKi51cmNoaW4uY29tghAqLnVybC5nb29nbGUuY29t\n"
"ghYqLnlvdXR1YmUtbm9jb29raWUuY29tgg0qLnlvdXR1YmUuY29tghYqLnlvdXR1\n"
"YmVlZHVjYXRpb24uY29tggsqLnl0aW1nLmNvbYIVYWQubW8uZG91YmxlY2xpY2su\n"
"bmV0ggthbmRyb2lkLmNvbYIPZG91YmxlY2xpY2submV0ggRnLmNvggZnb28uZ2yC\n"
"FGdvb2dsZS1hbmFseXRpY3MuY29tgglnb29nbGUuYWOCCWdvb2dsZS5hZIIJZ29v\n"
"Z2xlLmFlgglnb29nbGUuYWaCCWdvb2dsZS5hZ4IJZ29vZ2xlLmFsgglnb29nbGUu\n"
"YW2CCWdvb2dsZS5hc4IJZ29vZ2xlLmF0gglnb29nbGUuYXqCCWdvb2dsZS5iYYIJ\n"
"Z29vZ2xlLmJlgglnb29nbGUuYmaCCWdvb2dsZS5iZ4IJZ29vZ2xlLmJpgglnb29n\n"
"bGUuYmqCCWdvb2dsZS5ic4IJZ29vZ2xlLmJ0gglnb29nbGUuYnmCCWdvb2dsZS5j\n"
"YYIKZ29vZ2xlLmNhdIIJZ29vZ2xlLmNjgglnb29nbGUuY2SCCWdvb2dsZS5jZoIJ\n"
"Z29vZ2xlLmNngglnb29nbGUuY2iCCWdvb2dsZS5jaYIJZ29vZ2xlLmNsgglnb29n\n"
"bGUuY22CCWdvb2dsZS5jboIMZ29vZ2xlLmNvLmFvggxnb29nbGUuY28uYneCDGdv\n"
"b2dsZS5jby5ja4IMZ29vZ2xlLmNvLmNyggxnb29nbGUuY28uaHWCDGdvb2dsZS5j\n"
"by5pZIIMZ29vZ2xlLmNvLmlsggxnb29nbGUuY28uaW2CDGdvb2dsZS5jby5pboIM\n"
"Z29vZ2xlLmNvLmplggxnb29nbGUuY28uanCCDGdvb2dsZS5jby5rZYIMZ29vZ2xl\n"
"LmNvLmtyggxnb29nbGUuY28ubHOCDGdvb2dsZS5jby5tYYIMZ29vZ2xlLmNvLm16\n"
"ggxnb29nbGUuY28ubnqCDGdvb2dsZS5jby50aIIMZ29vZ2xlLmNvLnR6ggxnb29n\n"
"bGUuY28udWeCDGdvb2dsZS5jby51a4IMZ29vZ2xlLmNvLnV6ggxnb29nbGUuY28u\n"
"dmWCDGdvb2dsZS5jby52aYIMZ29vZ2xlLmNvLnphggxnb29nbGUuY28uem2CDGdv\n"
"b2dsZS5jby56d4INZ29vZ2xlLmNvbS5hZoINZ29vZ2xlLmNvbS5hZ4INZ29vZ2xl\n"
"LmNvbS5haYINZ29vZ2xlLmNvbS5hcoINZ29vZ2xlLmNvbS5hdYINZ29vZ2xlLmNv\n"
"bS5iZIINZ29vZ2xlLmNvbS5iaIINZ29vZ2xlLmNvbS5iboINZ29vZ2xlLmNvbS5i\n"
"b4INZ29vZ2xlLmNvbS5icoINZ29vZ2xlLmNvbS5ieYINZ29vZ2xlLmNvbS5ieoIN\n"
"Z29vZ2xlLmNvbS5jboINZ29vZ2xlLmNvbS5jb4INZ29vZ2xlLmNvbS5jdYINZ29v\n"
"Z2xlLmNvbS5jeYINZ29vZ2xlLmNvbS5kb4INZ29vZ2xlLmNvbS5lY4INZ29vZ2xl\n"
"LmNvbS5lZ4INZ29vZ2xlLmNvbS5ldIINZ29vZ2xlLmNvbS5maoINZ29vZ2xlLmNv\n"
"bS5nZYINZ29vZ2xlLmNvbS5naIINZ29vZ2xlLmNvbS5naYINZ29vZ2xlLmNvbS5n\n"
"coINZ29vZ2xlLmNvbS5ndIINZ29vZ2xlLmNvbS5oa4INZ29vZ2xlLmNvbS5pcYIN\n"
"Z29vZ2xlLmNvbS5qbYINZ29vZ2xlLmNvbS5qb4INZ29vZ2xlLmNvbS5raIINZ29v\n"
"Z2xlLmNvbS5rd4INZ29vZ2xlLmNvbS5sYoINZ29vZ2xlLmNvbS5seYINZ29vZ2xl\n"
"LmNvbS5tbYINZ29vZ2xlLmNvbS5tdIINZ29vZ2xlLmNvbS5teIINZ29vZ2xlLmNv\n"
"bS5teYINZ29vZ2xlLmNvbS5uYYINZ29vZ2xlLmNvbS5uZoINZ29vZ2xlLmNvbS5u\n"
"Z4INZ29vZ2xlLmNvbS5uaYINZ29vZ2xlLmNvbS5ucIINZ29vZ2xlLmNvbS5ucoIN\n"
"Z29vZ2xlLmNvbS5vbYINZ29vZ2xlLmNvbS5wYYINZ29vZ2xlLmNvbS5wZYINZ29v\n"
"Z2xlLmNvbS5wZ4INZ29vZ2xlLmNvbS5waIINZ29vZ2xlLmNvbS5wa4INZ29vZ2xl\n"
"LmNvbS5wbIINZ29vZ2xlLmNvbS5wcoINZ29vZ2xlLmNvbS5weYINZ29vZ2xlLmNv\n"
"bS5xYYINZ29vZ2xlLmNvbS5ydYINZ29vZ2xlLmNvbS5zYYINZ29vZ2xlLmNvbS5z\n"
"YoINZ29vZ2xlLmNvbS5zZ4INZ29vZ2xlLmNvbS5zbIINZ29vZ2xlLmNvbS5zdoIN\n"
"Z29vZ2xlLmNvbS50aoINZ29vZ2xlLmNvbS50boINZ29vZ2xlLmNvbS50coINZ29v\n"
"Z2xlLmNvbS50d4INZ29vZ2xlLmNvbS51YYINZ29vZ2xlLmNvbS51eYINZ29vZ2xl\n"
"LmNvbS52Y4INZ29vZ2xlLmNvbS52ZYINZ29vZ2xlLmNvbS52boIJZ29vZ2xlLmN2\n"
"gglnb29nbGUuY3qCCWdvb2dsZS5kZYIJZ29vZ2xlLmRqgglnb29nbGUuZGuCCWdv\n"
"b2dsZS5kbYIJZ29vZ2xlLmR6gglnb29nbGUuZWWCCWdvb2dsZS5lc4IKZ29vZ2xl\n"
"LmV1c4IJZ29vZ2xlLmZpgglnb29nbGUuZm2CCWdvb2dsZS5mcoIKZ29vZ2xlLmZy\n"
"bIIJZ29vZ2xlLmdhggpnb29nbGUuZ2Fsgglnb29nbGUuZ2WCCWdvb2dsZS5nZ4IJ\n"
"Z29vZ2xlLmdsgglnb29nbGUuZ22CCWdvb2dsZS5ncIIJZ29vZ2xlLmdygglnb29n\n"
"bGUuZ3mCCWdvb2dsZS5oa4IJZ29vZ2xlLmhugglnb29nbGUuaHKCCWdvb2dsZS5o\n"
"dIIJZ29vZ2xlLmh1gglnb29nbGUuaWWCCWdvb2dsZS5pbYIJZ29vZ2xlLmluggtn\n"
"b29nbGUuaW5mb4IJZ29vZ2xlLmlxgglnb29nbGUuaXKCCWdvb2dsZS5pc4IJZ29v\n"
"Z2xlLml0ggxnb29nbGUuaXQuYW+CCWdvb2dsZS5qZYIJZ29vZ2xlLmpvggtnb29n\n"
"bGUuam9ic4IJZ29vZ2xlLmpwgglnb29nbGUua2eCCWdvb2dsZS5raYIJZ29vZ2xl\n"
"Lmt6gglnb29nbGUubGGCCWdvb2dsZS5saYIJZ29vZ2xlLmxrgglnb29nbGUubHSC\n"
"CWdvb2dsZS5sdYIJZ29vZ2xlLmx2gglnb29nbGUubWSCCWdvb2dsZS5tZYIJZ29v\n"
"Z2xlLm1ngglnb29nbGUubWuCCWdvb2dsZS5tbIIJZ29vZ2xlLm1ugglnb29nbGUu\n"
"bXOCCWdvb2dsZS5tdYIJZ29vZ2xlLm12gglnb29nbGUubXeCCWdvb2dsZS5uZYIM\n"
"Z29vZ2xlLm5lLmpwggpnb29nbGUubmV0gglnb29nbGUubmeCCWdvb2dsZS5ubIIJ\n"
"Z29vZ2xlLm5vgglnb29nbGUubnKCCWdvb2dsZS5udYINZ29vZ2xlLm9mZi5haYIJ\n"
"Z29vZ2xlLnBrgglnb29nbGUucGyCCWdvb2dsZS5wboIJZ29vZ2xlLnBzgglnb29n\n"
"bGUucHSCCWdvb2dsZS5yb4IJZ29vZ2xlLnJzgglnb29nbGUucnWCCWdvb2dsZS5y\n"
"d4IJZ29vZ2xlLnNjgglnb29nbGUuc2WCCWdvb2dsZS5zaIIJZ29vZ2xlLnNpggln\n"
"b29nbGUuc2uCCWdvb2dsZS5zbYIJZ29vZ2xlLnNugglnb29nbGUuc2+CCWdvb2ds\n"
"ZS5zcoIJZ29vZ2xlLnN0gglnb29nbGUudGSCCmdvb2dsZS50ZWyCCWdvb2dsZS50\n"
"Z4IJZ29vZ2xlLnRrgglnb29nbGUudGyCCWdvb2dsZS50bYIJZ29vZ2xlLnRuggln\n"
"b29nbGUudG+CCWdvb2dsZS50dIIJZ29vZ2xlLnVhgglnb29nbGUudXOCCWdvb2ds\n"
"ZS51eoIJZ29vZ2xlLnZngglnb29nbGUudnWCCWdvb2dsZS53c4ISZ29vZ2xlY29t\n"
"bWVyY2UuY29tggtnc3RhdGljLmNvbYIKdXJjaGluLmNvbYIIeW91dHUuYmWCC3lv\n"
"dXR1YmUuY29tghR5b3V0dWJlZWR1Y2F0aW9uLmNvbTBoBggrBgEFBQcBAQRcMFow\n"
"KwYIKwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZ2xlLmNvbS9HSUFHMi5jcnQwKwYI\n"
"KwYBBQUHMAGGH2h0dHA6Ly9jbGllbnRzMS5nb29nbGUuY29tL29jc3AwHQYDVR0O\n"
"BBYEFDMrLmj1e2gmcZmnzubAE8ZjJQ65MAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgw\n"
"FoAUSt0GFhu89mi1dvWBtrtiGrpagS8wFwYDVR0gBBAwDjAMBgorBgEEAdZ5AgUB\n"
"MDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly9wa2kuZ29vZ2xlLmNvbS9HSUFHMi5j\n"
"cmwwDQYJKoZIhvcNAQELBQADggEBABxZydGQYaldvgzWN5nNRn2ODsjG8HY5Ze4z\n"
"yASaqmGhPUHwgatR0jXtjE5RG3d5QQ3mxHmebm860FropIC6ILCFxMwI5HkZaKPc\n"
"mgfqCfQuPb2qlmwEjyTOpq+Z8eDK8nZRIdTrepDmx+f+vnErW2xqNO8t6v+56eUy\n"
"v3H534IhukbzRUV6px502ZtjjHESfAbm6re9DEH5dGkfPMqnSkSuPE3oWDfKrX3v\n"
"g023KPi7pVjgZbQGyI17KBo4P75fnjnvu19Yi85j5uo+nkjFF7hlIFruRNP6VZbg\n"
"JhDfLMIcOPsMQuLkudih8be5aZmhld1xbzvWRuPEUjzLy28T81A=\n"
"-----END CERTIFICATE-----\n"
" 1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2\n"
" i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA\n"
"-----BEGIN CERTIFICATE-----\n"
"MIID8DCCAtigAwIBAgIDAjp2MA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT\n"
"MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i\n"
"YWwgQ0EwHhcNMTMwNDA1MTUxNTU1WhcNMTYxMjMxMjM1OTU5WjBJMQswCQYDVQQG\n"
"EwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzElMCMGA1UEAxMcR29vZ2xlIEludGVy\n"
"bmV0IEF1dGhvcml0eSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\n"
"AJwqBHdc2FCROgajguDYUEi8iT/xGXAaiEZ+4I/F8YnOIe5a/mENtzJEiaB0C1NP\n"
"VaTOgmKV7utZX8bhBYASxF6UP7xbSDj0U/ck5vuR6RXEz/RTDfRK/J9U3n2+oGtv\n"
"h8DQUB8oMANA2ghzUWx//zo8pzcGjr1LEQTrfSTe5vn8MXH7lNVg8y5Kr0LSy+rE\n"
"ahqyzFPdFUuLH8gZYR/Nnag+YyuENWllhMgZxUYi+FOVvuOAShDGKuy6lyARxzmZ\n"
"EASg8GF6lSWMTlJ14rbtCMoU/M4iarNOz0YDl5cDfsCx3nuvRTPPuj5xt970JSXC\n"
"DTWJnZ37DhF5iR43xa+OcmkCAwEAAaOB5zCB5DAfBgNVHSMEGDAWgBTAephojYn7\n"
"qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUSt0GFhu89mi1dvWBtrtiGrpagS8wEgYD\n"
"VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwNQYDVR0fBC4wLDAqoCig\n"
"JoYkaHR0cDovL2cuc3ltY2IuY29tL2NybHMvZ3RnbG9iYWwuY3JsMC4GCCsGAQUF\n"
"BwEBBCIwIDAeBggrBgEFBQcwAYYSaHR0cDovL2cuc3ltY2QuY29tMBcGA1UdIAQQ\n"
"MA4wDAYKKwYBBAHWeQIFATANBgkqhkiG9w0BAQUFAAOCAQEAJ4zP6cc7vsBv6JaE\n"
"+5xcXZDkd9uLMmCbZdiFJrW6nx7eZE4fxsggWwmfq6ngCTRFomUlNz1/Wm8gzPn6\n"
"8R2PEAwCOsTJAXaWvpv5Fdg50cUDR3a4iowx1mDV5I/b+jzG1Zgo+ByPF5E0y8tS\n"
"etH7OiDk4Yax2BgPvtaHZI3FCiVCUe+yOLjgHdDh/Ob0r0a678C/xbQF9ZR1DP6i\n"
"vgK66oZb+TWzZvXFjYWhGiN3GhkXVBNgnwvhtJwoKvmuAjRtJZOcgqgXe/GFsNMP\n"
"WOH7sf6coaPo/ck/9Ndx3L2MpBngISMjVROPpBYCCX65r+7bU2S9cS+5Oc4wt7S8\n"
"VOBHBw==\n"
"-----END CERTIFICATE-----\n"
" 2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA\n"
" i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority\n"
"-----BEGIN CERTIFICATE-----\n"
"MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT\n"
"MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0\n"
"aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw\n"
"WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE\n"
"AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\n"
"CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m\n"
"OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu\n"
"T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c\n"
"JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR\n"
"Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz\n"
"PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm\n"
"aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM\n"
"TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g\n"
"LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO\n"
"BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv\n"
"dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB\n"
"AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL\n"
"NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W\n"
"b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S\n"
"-----END CERTIFICATE-----\n"
"---\n"
"Server certificate\n"
"subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=google.com\n"
"issuer=/C=US/O=Google Inc/CN=Google Internet Authority G2\n"
"---\n"
"No client certificate CA names sent\n"
"---\n"
"SSL handshake has read 10215 bytes and written 438 bytes\n"
"---\n"
"New, TLSv1/SSLv3, Cipher is RC4-SHA\n"
"Server public key is 2048 bit\n"
"Compression: NONE\n"
"Expansion: NONE\n"
"SSL-Session:\n"
" Protocol : TLSv1\n"
" Cipher : RC4-SHA\n"
" Session-ID: 8EBB979A96C58F5D6B0CF33E01F12D096E201DF6C49DA77ED00FA7B9F5272C08\n"
" Session-ID-ctx: \n"
" Master-Key: 01AEE29DA7182701AEC2F6EEAFC52D0A334983BBBBD26E4176B11B66703FFC8A8E6B49149B2624F8E15997B325CB15DE\n"
" Key-Arg : None\n"
" Start Time: 1440342367\n"
" Timeout : 300 (sec)\n"
" Verify return code: 20 (unable to get local issuer certificate)\n"
"---\n")
matches = re.finditer(regex, test_str, re.MULTILINE | re.DOTALL)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html