using System;
using System.Collections.Generic;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
string input = "blablabla print('Test 1'); blabla print('Test 2')";
string pat = "print('";
int pos = 0;
List<string> findings = new List<string>();
while ( pos < input.Length)
{
pos = input.IndexOf(pat, pos);
if (pos < 0) break; else pos += pat.Length;
int endpos = input.IndexOf("'", pos);
if (endpos > 0)
{
findings.Add(input.Substring(pos, endpos - pos));
pos = endpos + 1;
}
}
foreach(var item in findings) { Console.WriteLine(item); }
Console.ReadLine();
} // void Main
} // class Program
} // namespace
Но как только вы лезете в десктоп - это значит иметь зоопарк операционных систем, конфигураций, версий браузеров, настроек безопасности, антивирусов, кривого софта и железа на машинах пользователей. Программа для десктопа в целом должна быть "вещью в себе" - самостоятельный исполняемый файл со всеми зависимостями в комплекте. Пользователь должен скачать один файл, запустить установщик и начать пользоваться программой.
И в этой связи заставлять его настраивать целую среду, в которой ваша программа будет работать = не иметь пользователей вообще. Программа может быть замечательной, но пользователи ленивы и, скорее, предпочтут вовсе не пользоваться вашей программой, чем тратить время и что-то дополнительно скачивать и тем более - настраивать.
Для десктопа есть C++, C#, Java. Язык программирования это прежде всего инструмент, а каждый инструмент хорош для тех задач, для которых он создан. Молотком забивают гвозди, а отвёрткой вкручивают шурупы. Молотком можно, конечно, забить саморез, но зачем?