You can use string split for that if you like. In the Exposure Groups Utilities job, select “Input Selection” = exposure, then “Action” = split. I think you want the field to be ‘movie_blob/path’ and you’ll have to figure out if all your exposure file names are static from either the front or back of the filename string. For what you’ve posted, I think setting index position to ‘front’ and start slicing at index 23, and consider 7 characters, should either work, or get you close enough that the solution is obvious.
EDIT: I misread your post. I think you’d actually want 31, and consider 2 characters. Your single digit groups will be n_ and your 2 digit groups will be nn, but that should be OK.
Keeping the XML is not a bad idea - they contain every detail of the acquisition in exhaustive detail…
Otherwise, @ccgauvin94 is right, with the new version of EPU adding beam shift group ID to the filename, string split does the job. Although, again as he points out, their naming is imperfect as EPU doesn’t pad the single-digit IDs to two digits.
i did this during movie import by using wild cards and cloning multiple movie import jobs (eg FoilHole*_0_*.tiff, FoilHole*_1_*.tiff, etc. as the movie path.
it took a few extra minutes to set up all of the import jobs (in this case i had 10), but otherwise it worked well Then just fed all ten imported movie groups into a single patch motion job and continued on my way.