In a large skillet, heat the oil. Season the ribs with salt and pepper. Add them to the skillet and cook over moderate heat, turning once, until browned and crusty, about 18 minutes. Transfer the ribs to a shallow baking dish in a single layer.
Add the onion, carrots, and celery to the skillet and cook over low heat, stirring occasionally, until very soft and lightly browned, about 15 minutes. Add the garlic and cook for another 5 minutes. Add the wine and herbs and bring to a boil over high heat. Pour the hot marinade over the ribs and let cool. Cover and refrigerate overnight, turning the ribs once.
Preheat the oven to 350°. Transfer the ribs and marinade to a large casserole, preferably cast-iron. Add the chicken stock and bring to a boil. Cover and cook in the lower third of the oven for 1 1/2 hours, until the meat is tender but not falling apart. Uncover and braise for 45 minutes longer, turning the ribs once or twice, until the sauce is reduced by about half and the meat is very tender.
With a slotted spoon or spider, transfer the meat to a clean shallow baking dish, discarding the bones as they fall off. Strain the sauce into a heatproof measuring cup and skim off as much fat as possible. Pour the sauce over the meat; there should be about 2 cups. Keep warm in a saucepan over the lowest possible heat.
Preheat the broiler. Broil the meat, turning once or twice, until glazed and sizzling, about 10 minutes. Transfer the meat to plates, spoon the sauce on top and serve.
Note: You can complete this dish through all steps up to broiling 2 days in advance. Cover well and refrigerate. Bring to room temp before broiling.