using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"=?case\s([\w\.='\""><\(\)\]\[,]+\s)?when\s[\s\w\.='\""><\(\)\]\[,]+?\sthen\s[\s\w\.='\""><\(\)\]\[,]+?\s(else\s[\s\w\.='\""><\(\)\]\[,]+?\s)?end(\sAS\s)?";
string input = @"case when i = 1 then 'temp' else 'perm' end col1,(select 1 from b) col2, Incident_Location, IncidentDate, ClinicalArea, Site, ClinicalIncident, Outcome, FileName, Status, DateClosed, What_Discuss, ID,PrimaryIncidentTypeID, Description, METCall, AFH_METCall,[abc]col2,[col3],col4=""xyz"",case when i in ('a','n') then 'ss' end [ads],AFH_METIn24Hr, MetTeam, IncidentInvolved, AFH_METCallReason, How_PrimTypeOth, HowRelateTypeOth, Threadnext, case jjlj when 99 then jjlda else ljfs end as col, col = case jjlj when 99 then jjlda else ljfs end";
RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx