Implement the deconstruct method in the MatchData class to allow conversion of the MatchData object into an array, enabling deconstruction of its components.
I think proper use of named captures should handle most cases where you would want to use the proposed MatchData#deconstruct. The remaining cases would be when you are passing MatchData as an argument to or result of a method call.
If we did want to implement this, it's questionable to me whether MatchData#deconstruct should operate like MatchData#to_a or MatchData#captures (your example implies captures would be a more useful behavior for that use case).
Match#destruct and Match#destruct_keys have been defined since ruby 3.2. Match#destruct is an alias of Match#captures like @jeremyevans0 (Jeremy Evans) wrote, so your regexp match does not match 4-element pattern.