You can do this with Power Query
.
I'm sure there is a cleaner way to do this, but SplitOnAnyDelimiter
does not seem to have an option to split on just the first instance, and I don't have time to write everything into concise M-code, so for now, I added some custom columns:
- Strip off the first letter so as to avoid finding a Capital letter at the beginning.
- Then find the position of the first occurrence any digit, capital Latin, capital Cyrillic letter
- Return the part of the string before that position.
- Return the part of the string after that position.
- Delete the unwanted columns
The M-Code:
let
Source = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "2nd", each Text.Middle([Name],1)),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Position", each Text.PositionOfAny([2nd],{"0".."9","A".."Z","А".."Я"},Occurrence.First)),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Equipment", each Text.Start([Name],[Position])),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "Custom", each Text.Middle([2nd],[Position])),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom3",{"Name", "2nd", "Position"})
in
#"Removed Columns"
Source

Results

EDIT I suspect the following code might be more efficient, as the only columns added are the results columns:
let
Source = Excel.CurrentWorkbook(){[Name="Table5"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Equipment", each Text.Start([Name],
Text.PositionOfAny(Text.Middle([Name],1),{"0".."9","A".."Z","А".."Я"},Occurrence.First))),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Part No", each Text.Middle([Name],
Text.PositionOfAny(Text.Middle([Name],1),{"0".."9","A".."Z","А".."Я"},Occurrence.First)+1)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Name"})
in
#"Removed Columns"