1st case it will select all order number with receiver desc does not start with number
FilteredDT = DataTable2.AsEnumerable().
Where(Function(row) DataTable1.AsEnumerable().
Any(Function(orderRow) orderRow("OrderNumber").ToString = row("OrderNumber").ToString) AndAlso
Not System.Text.RegularExpressions.Regex.IsMatch(row("receiver desc").ToString, "^\d")).
CopyToDataTable()
2nd case where it will select all order number with receiver desc start with number
FilteredDT = DataTable2.AsEnumerable().
Where(Function(row) DataTable1.AsEnumerable().
Any(Function(orderRow) orderRow("OrderNumber").ToString = row("OrderNumber").ToString) AndAlso
System.Text.RegularExpressions.Regex.IsMatch(row("receiver desc").ToString, "^\d")).
CopyToDataTable()
3rd case unmatched orders
UnmatchedOrdersDT = DataTable1.AsEnumerable().
Where(Function(row) Not DataTable2.AsEnumerable().
Any(Function(orderRow) orderRow("OrderNumber").ToString = row("OrderNumber").ToString)).
CopyToDataTable()